2012-02-06 21 views
2

正規表現で電話番号をスキャンするプログラムを作成しようとしています。それが一致すれば、基本的にクリック可能な電話番号の後ろにImageを追加してから、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の新機能です。これは私がイメージを追加するために見つけた1つの方法ですが、私は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"; 
.... 
のためのことができます。ユーザーイベント
関連する問題