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

时间:2010-05-14 12:30:51

标签: 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。

来自我的扩展程序

//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变量?

2 个答案:

答案 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之间交换数据:

https://developer.mozilla.org/en/Code_snippets/Interaction_between_privileged_and_non-privileged_pages

相关问题