【发布时间】:2022-12-30 01:03:37
【问题描述】:
我正在将一个有效的 v3 chrome 扩展移植到 MacOS 上的 Safari。在我调用的后台(服务工作者)脚本中
self.importScripts("Platform.js");
应该加载所述 JavaScript 文件。它与调用它的脚本位于同一文件夹中。
但这在 Safari(不是 chrome)中失败并出现错误:
加载资源失败:不支持的 URL safari-web-extension://FE580C4D-9931-4639-ABF9-...../Platform.js
(点代替最后的十六进制数字)。在清单中我有几行:
"web_accessible_resources": [ { "resources": ["Platform.js"], "matches": ["<all_urls>"] },...我正在按照 converting a web extension to Safari 的说明进行操作。我正在运行 MacOS Monterey、Safari 15.5。
任何关于我可能需要尝试的指示都将不胜感激。我想过静态导入代码,但它不是 JavaScript 模块。
【问题讨论】:
-
也遇到了这个。你找到解决办法了吗?
-
不幸的是没有。我尝试了几种将导入的 JavaScript 代码转换为模块以便静态导入的方法,但没有成功。如果有人知道在扩展的上下文中执行此操作的方法,我想听听。我接下来要尝试的选项是相同的扩展,但使用清单 v2 而不是 v3(避免动态导入)。
-
嗯,使用 mv2 工作正常并且足以满足我的目的,但对于想要在 Chrome 和 Safari 上发布的扩展程序的作者来说显然有点不满意。谢谢你的提示!
标签: javascript safari safari-extension