gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 18:53:03 24 4
gpt4 key购买 nike

可以使面板脚本和页面脚本的全局变量相同吗?

也许有一些技巧,比如使用指针,或者可能是一些可以通过面板脚本和页面脚本轻松访问的存储位置。我不想使用端口通信发送带有发布消息的变量,因为我将在以英里为单位刷新的计时器函数中使用此变量,并且如果 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'
});

更新:

我想读取页面上正在播放的玩家位置,并且我需要它非常精确(以英里为单位),并且我想在我的插件面板脚本中使用计时器来获取玩家位置值。如果我使用端口请求,那么 Web 浏览器会因大量请求而过载,这比我能够将值保存在可以轻松从面板脚本中读取的位置时占用更多资源。

最佳答案

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

如果您提供有关您的附加组件实际用途的更多信息,人们可能能够提出更好的解决问题的方法。

关于javascript - Firefox 插件中面板内容脚本和页面内容脚本之间的全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15633900/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com