Возможно, проблемы вызваны тем, что вы назвали параметр для вашей hello
функции равным window
.Хотя окно не является зарезервированным словом, большинство браузерных сред воспринимают его как неопределяемую константу.Попробуйте:
function hello( obj ) {
obj.alert("ALERT FROM JSM!");
}
в вашем модуле и затем вызовите его с помощью hello(window)
, hello(document.window)
или hello(this)
После прочтения документации модуля Javascript это выглядит следующим образомвам нужно создать объект внутри модуля, а затем изменить его свойство по ссылке.Итак, в вашем JSM:
var EXPORTED_SYMBOLS = ["params", "hello"];
params = {
win: this
};
function hello() {
params.win.alert("ALERT FROM JSM!");
}
Затем вы вызываете, сначала назначая окно этому параметру, а затем вызывая функцию:
Components.utils.import("resource://module/resource.jsm");
params.win = window;
hello();
Примечание: я недостаточно знаком сJSM знают, есть ли лучший способ сделать это, но это должно сработать.