firefox插件中面板内容脚本和页面内容脚本之间的全局变量

问题描述:

可以为面板脚本和页脚本制作一个全局变量吗?firefox插件中面板内容脚本和页面内容脚本之间的全局变量

也许有些黑客喜欢使用指针或可能一些存储位置,可以通过面板脚本和页面脚本轻松访问。我不想发送使用端口通信发布消息的变量,因为我将在定时器函数中使用此变量,这些定时器函数在以英里为单位的时间间隔内刷新,如果Web浏览器将发布如此多的带有系统端口的消息,则Web浏览器将超载。我认为如果我可以从一个位置读取变量会更好,可以通过面板脚本和页面脚本轻松访问该变量。我是Firefox的附加组件生成器,我怎样才能实现这个插件?

这里我附上面板脚本,它会读取页面脚本保存的值。

var panel = require("panel").Panel({ 
      width: 100, 
      height: 100, 
      contentScriptFile: data.url("panel_script.js") 
    }); 

我在这里附上网页脚本这将节省从页面内容和面板脚本中的数值会读它。

var pageMod = require("page-mod"); 
pageMod.PageMod({ 
    include: "*", 
    contentScriptFile: self.data.url("page_script.js"), 
    contentScriptWhen: 'ready' 
    }); 

UPDATE:

我想读这是在网页上播放的播放位置,我需要它作为mileseconds非常准确,我想在我的插件面板使用计时器脚本获取玩家位置值。如果我使用端口请求,那么Web浏览器会被重载,因为这么多的请求会花费更多的资源,而不是只能将值保存在可轻松从面板脚本中获取的位置。

+0

你只想要显示它的值吗?否则,我只会在特定事件发生时获得价值。 – canuckistani 2013-03-26 20:44:59

+0

@canuckistani我需要获得价值并处理它。我可以检测到玩家正在玩的事件,然后我想在一秒钟的间隔内获得玩家的位置,精度非常重要。 – Jigberto 2013-03-26 22:16:07

+0

我不知道该怎么告诉你,这个系统并不是专为高频率的消息而设计的,也不是为了让你通过参考直接从网页访问对象或值来形成附加代码,理由很充分。 – canuckistani 2013-03-26 22:19:25

你不能这样做,主要是出于安全和性能原因。内容脚本必须与main.js中的主要附加代码分开,以防止web内容能够在main.js中注入和运行代码,并且有可能访问Firefox的所有API,例如将文件写入文件系统,侦听TCP套接字和修改其他网页。

如果您提供了有关附加功能的更多信息,人们可能会提出更好的解决方法。

+0

请检查我的更新。谢谢 – Jigberto 2013-03-26 20:29:00