htmlのonclickでFirefoxのアドオン関数を呼び出す方法

私は正規表現で電話番号をスキャンするプログラムを書こうとしています。それが一致すれば、基本的にクリック可能な電話番号の後ろにImageを追加してから、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にはとても新しいです。これは私がイメージを追加するために見つけた1つの方法ですが、私はonclickを処理することができません。

私は "createElement"を使用している人を読んでいますが、私はそれを動作させることができません。

私のクリック可能な画像を追加するためのコードで私の手助けをすることができるボディがあれば、私の正規表現マッチの後ろに。画像がクリックされると、onDialerHandlerを呼び出す必要があります。

私は、この動作をさせるために.replace関数を使用しないで助けが必要だと信じています。私を正しい方向に向けることさえ、私が割当てるのを助けるかもしれない?

2

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";
 ....
1
追加された
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript