2010-05-14 91 views
4

我的Firefox扩展有一个对象myExt。如何从当前文档/窗口访问Firefox扩展变量

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(); 

坪服务器,回网页

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

//but the window doesnt find a reference to myExt 

如何使从网页到myExt变量的引用?

回答

5

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

通常,当您的扩展程序代码与来自网站的代码进行交互时,为了不打开可能允许恶意网站使用Chrome特权执行JavaScript的安全漏洞,您必须非常小心。

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

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