Моя конечная цель - создать расширение firefox, которое вставит кнопку HTML на сайт и запустит функцию, определенную в модуле пользовательского кода в моем расширении.
Я пытался реализовать ответ Николая на этот вопрос . Когда я нажимаю кнопку, которую создал, я получаю следующую ошибку в Firebug:
"неосторожное исключение: [Exception ..." Компонент возвратил код ошибки: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIDOMEventTarget.dispatchEvent] "nsresult:" 0x80070057 (NS_ERROR_ILLEGAL_VALUE) "location:" JS
Мой код:
onPageLoad: function(aEvent) {
Components.utils.import("chrome://my_ext/content/writeFile.jsm", my_ext);
//alert(foo()); - foo() is an function in the above code module I import
var doc = aEvent.originalTarget; // doc is document that triggered "onload" event
var event = doc.createEvent("Events");
event.initEvent("my-custom-event", true, true);
var fblike = doc.getElementById("LikePluginPagelet");
var button = doc.createElement("input");
button.setAttribute("type", "button");
button.setAttribute("value", "My Button");
button.setAttribute('onclick', 'dispatchEvent(event)');
fblike.appendChild(button, fblike);
var docx = event.originalTarget;
if(docx && docx.addEventListener)
docx.addEventListener("my-custom-event", function() {alert(foo()); }, false);
},
Мой writeFile.jsm:
var EXPORTED_SYMBOLS = ["foo"];
function foo() {
return "foo test";
}
Есть идеи, как мне это исправить? Следует также отметить, что я совершенно новичок в разработке расширений для браузера.