2012-02-06 102 views
2

我正在尝试编写一个程序,用正则表达式扫描电话号码。然后,如果它匹配,它应该基本上添加一个图像到应该点击的电话号码后面,然后在我的Firefox扩展中调用我的功能。如何在html中使用onclick调用firefox addon函数

onDialerHandler: function(number){ 
    alert("onclick Event detected!"); 
}, 

onPageLoad : function(aEvent) { 
if(aEvent.originalTarget.nodeName=="#document"){ 
    var doc = aEvent.originalTarget; 

    var regex = /\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})/g;  

    var contents=doc.body.innerHTML; 

    var idx=contents.search("hello"); 
    if(idx) { 
    var candidates = contents.match(regex); 

    contents=contents.replace(regex,'($1) $2-$3<input id="testbutton" type="image" src="chrome://click2dial/content/images/call.png" name="image" onclick="onDialerHandler()" width="15" height="15">'); 
    doc.body.innerHTML=contents; 
    } 
    } 
}, 

我还是很新的Firefox插件和JavaScript。这是我发现添加图像的一种方式,但我无法处理onclick。

我已经读过使用“createElement”的人,但我只是无法让它工作。

如果有任何身体可以帮助我用代码将我的可点击图像添加到正常表达匹配的背面。一个人的图像被点击onDialerHandler需要被调用的功能。

我相信我不需要使用.replace函数来获得这个工作的帮助。甚至指着我正确的方向可能会帮助我分配?

回答

1

您应该在页面中创建一个自定义事件并分派它。


    var evt = document.createEvent("Events"); 
    evt.initEvent("MY_EVENT", true, false); 
    document.dispatchEvent(evt); 

在扩展端,您应该创建侦听器来捕获事件。


document.addEventListener("MY_EVENT", myFunction, false, true); 

如果你想通过一些日期,你可以为这个


    var evt = document.createEvent("Events"); 
    evt.someDate = "date"; 
.... 
用户事件
相关问题