Здравствуйте, у меня есть простое расширение для Firefox (на основе SDK для дополнений) с pageMod.
pageMod вставляет некоторый скрипт на страницу, которая вызывает одну функцию
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", {});
На веб-странице у меня есть прослушиватель событий, добавленный через MyDiv.addEventListener (...)
Проблема вставлена, скрипт не отправляет ни одно событие на страницу. Функция dispatchEvent возвращает true, но ничего не происходит.
Вот код моей страницы.
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.
P.S. Я также попытался использовать unsafeWindow.document вместо документа и использовать jQuery события / прослушиватели событий, и это тоже не работает.