2012-02-06 101 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"; 
.... 
用戶事件
相關問題