我正在尝试在Firefox扩展中动态创建全局函数:
window.performAction= function() { ... };
我现在知道该窗口是由XrayWrapper问题包装的。
window -> [object XrayWrapper [object Window]]
因此,似乎分配函数绝对没有任何作用。有没有办法像这样安全地修改窗口对象?
最佳答案
从您的附加代码:
gBrowser.contentWindow.addEventListener('customEventListenerMy',doMyFunc,false);
function doMyFunc(){
console.log('doing func');
}
gBrowser.contentWindow
附加到当前聚焦的选项卡文档。可能需要在gBrowser之前粘贴Services.wm.getMostRecentWindow('navigator:browser')
,这样Services.wm.getMostRecentWindow('navigator:browser').gBrowser.contentWindow
在您的窗口dispatchEvent中
var event = new Event('customEventListenerMy');
// Dispatch the event.
window.dispatchEvent(event);