如何解决background_worker.js 和 popup.js 中的全局常量 - Chrome 扩展 v3
我真的想与我所有的 js 文件,background_serviceworker.js 和 popup.js 共享常量。
const EXTENSION_MODE = {
SEARCH_ONLY: "searchOnly",FILTER: "filter",OFF: "off"
}
将 vars 放入 background_serviceworker.js 并使用 getBackgroundPage() 对我来说似乎有点混乱(会使背景文件变得非常大)。
解决方法
我创建了 constants.js。
// constants.js
var EXTENSION_MODE = Object.freeze({
SEARCH_ONLY: "searchOnly",FILTER: "filter",OFF: "off"
})
将其注入 background-service-worker 文件(使用此处的答案 Service worker registration failed. Chrome extension 实际查看注入脚本中的错误。否则,您只会看到非常普遍的错误)
// background.js
try { importScripts("constants.js"); } catch (e) { console.error(e); }
现在 popup.js 仍然无法访问它,因为它在孤立的上下文中运行。 所以我也将它注入到 popup.html(以老式的方式)。
<!-- popup.html -->
<body>
<some-other-elements/>
<script src="./constants.js"></script>
<script src="./popup.js"></script>
</body>
我可以在 popup.js 中使用它
// popup.js
console.log("popup: " + EXTENSION_MODE.FILTER);
附注。在内容脚本上(使用 chrome.scripting.executeScript 注入),我们不会使用它。我们需要开始使用存储和消息传递 https://developer.chrome.com/docs/extensions/reference/storage/ https://developer.chrome.com/docs/extensions/mv3/messaging/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。