私は単純な Firefox 拡張機能 (アドオン SDK に基づく) を持っていpageMod
ます。
pageMod
ページにスクリプトを挿入し、1 つの関数を呼び出します。
function dispatchEvent(name, data){
try {
data = data || {};
// passing some data through html element
document.getElementById('MyDiv').innerText = JSON.stringify(data);
var evt = document.createEvent('Event');
evt.initEvent(name.toString(), true, true);
if(document.getElementById('MyDiv').dispatchEvent(evt))
console.log("Dispatch event: "+name+" data: "+JSON.stringify(data));
} catch (e) {
console.log("Error:" + e);
}
}
dispatchEvent("MyEvent", {});
Web ページには、イベント リスナーがあり、MyDiv.addEventListener(...)
. 問題は、挿入されたスクリプトがページにイベントをディスパッチしないことです。関数は true を返しますが、dispatchEvent
何も起こりません。これが私のpageMod
コードです:
var myMod = pageMod.PageMod({
include: ["http://localhost/mysite/*"],
contentScriptFile: [data.url("js/script.js")],
contentScriptWhen: "end",
onAttach: function onAttach(worker) {
console.log("CS injected");
}
});
contentScript
Firebug コンソールを介してコードを実行すると機能しますが、からイベントをディスパッチする必要がありますcontentScript
。
PSunsafeWindow.document
ドキュメントの代わりに使用しようとしましたが、jQueryイベント/イベントリスナーを使用しましたが、どちらも機能していません。