我正在尝试编写一个用正则表达式扫描电话号码的程序。然后,如果它匹配,它应该基本上将一个图像添加到应该可点击的电话号码的背面,然后在我的Firefox扩展中调用我的功能。
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函数来帮助我正常工作。即使把我指向正确的方向可能会帮助我分配?
答案 0 :(得分: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";
....