javascript - 如何从当前文档/窗口访问 firefox 扩展变量

标签 javascript firefox-addon scope

我的 firefox 扩展有一个对象 myExt 。

myExt = {
 request: function(){ 
    //adds dynamic script element to the current webpage's head tag
 },
 callback: function(json) { 
    //do something with this 
 } 
};

myExt.request 将动态添加的脚本元素添加到返回 json 的服务器,我希望将 json 发送到存在于我的扩展的 js 代码中的 myExt.callback。

来 self 的扩展

//from my extension, i add a script element
myExt.request();

ping 服务器,返回网页

//from server i get the following response
myExt.callback ( {"some":"json"}) ;

//but the window doesnt find a reference to myExt

如何从网页引用 myExt 变量?

最佳答案

Firefox 扩展程序以高权限 (chrome) 运行 JavaScript,并且可以完全访问浏览器。来自网页的 JavaScript 代码运行非特权 JavaScript,除其他外,不能引用特权 JavaScript 或直接与特权 JavaScript 交互。

一般来说,当您的扩展代码与来自网站的代码交互时,您必须非常小心,以免打开一个安全漏洞,让恶意网站能够以 chrome 权限执行 JavaScript。

如果您需要在特权和非特权 JavaScript 之间交换数据,您可以在这里找到更多信息,包括代码片段:

https://developer.mozilla.org/en/Security_best_practices_in_extensions

关于javascript - 如何从当前文档/窗口访问 firefox 扩展变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2834071/

相关文章:

javascript - 按下按键而不是单击按钮

javascript - 有没有办法设置 webpack 配置来加载特定的 core-js 条目

javascript - Firefox 扩展如何将字符串类型变量传递给 javascript 替换正则表达式参数?

c++ - 为什么(不相关的)using 声明可以通过参数依赖查找调和重载歧义?

swift - 在 Swift 中指定全局范围

javascript - 如何从后端获取数据

javascript - 按 Enter 键移动到 ASP.Net 中的下一个文本框

javascript - Mozilla 附加组件 在同一窗口和同一选项卡中打开链接

javascript - 在新选项卡中打开链接

python - Python递归期间的变量范围错误