我的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。
来自我的扩展程序
//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变量?
答案 0 :(得分:5)
Firefox扩展程序以高权限(chrome)运行JavaScript,并具有对浏览器的完全访问权限。来自网页的JavaScript代码运行无特权的JavaScript,除其他外,无法直接引用特权JavaScript或与特权JavaScript交互。
一般情况下,当您的扩展程序代码与来自网站的代码进行交互时,您必须非常小心,以免打开可能允许恶意网站以Chrome权限执行JavaScript的安全漏洞。
如果您需要在特权JavaScript和非特权JavaScript之间交换数据,可以在此处找到更多信息,包括代码段:
https://developer.mozilla.org/en/Security_best_practices_in_extensions
答案 1 :(得分:5)
另请参阅此链接以在特权和非特权JavaScript之间交换数据: