bos*_*101 4 javascript scope firefox-addon
我的firefox扩展有一个对象myExt.
myExt = {
request: function(){
//adds dynamic script element to the current webpage's head tag
},
callback: function(json) {
//do something with this
}
};
Run Code Online (Sandbox Code Playgroud)
myExt.request将一个动态添加的脚本元素添加到返回json的服务器,我希望将json发送到我的扩展的js代码中存在的myExt.callback.
从我的扩展
//from my extension, i add a script element
myExt.request();
Run Code Online (Sandbox Code Playgroud)
ping服务器,返回网页
//from server i get the following response
myExt.callback ( {"some":"json"}) ;
//but the window doesnt find a reference to myExt
Run Code Online (Sandbox Code Playgroud)
如何从网页中引用myExt变量?
Firefox扩展以高权限(chrome)运行JavaScript,并具有对浏览器的完全访问权限.来自网页的JavaScript代码运行非特权JavaScript,并且不能直接引用特权JavaScript或与特权JavaScript交互.
通常,当您的扩展代码与来自网站的代码交互时,您必须非常小心,以免打开可能允许恶意网站使用chrome权限执行JavaScript的安全漏洞.
您可以在此处找到更多信息,包括代码段,如果您需要在特权和非特权JavaScript之间交换数据:
https://developer.mozilla.org/en/Security_best_practices_in_extensions
另请参阅此链接以在特权和非特权JavaScript之间交换数据: