javascript - Firefox 扩展 - PageMod 脚本修改窗口

标签 javascript firefox dom firefox-addon wrapper

我正在尝试在我的 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);

关于javascript - Firefox 扩展 - PageMod 脚本修改窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22016534/

相关文章:

javascript - 将图像拖放到另一个图像上的任何位置

javascript - 使用 react 时在 preventDefault() 之后提交

html - 在记事本中获取页面生成的源代码

javascript - 将 DIV 定位在光标处但在可视区域内

javascript - 关于如何安全地记录用户回答测验挑战需要多长时间的想法?

javascript - 无法在命令提示符下使用 openai

javascript - 当我在数字类型文本框中输入 float 时,Firefox 显示错误

javascript - Firefox 中的 open() 和 window.open() 有什么区别?

java - 在 Java 中比较 XML

javascript - element.parentNode.removeChild() 方法在 Internet Explorer 中不起作用