如何在html中使用onclick调用firefox插件函数

时间:2012-02-06 09:54:24

标签: javascript firefox-addon

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

1 个答案:

答案 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";
 ....