繁体   English   中英

如何在Firefox插件中使用来自外部URI的contentScriptFile

[英]How to use a contentScriptFile from an external URI in a Firefox addon

我对Firefox插件的最新更新已被拒绝,因为我使用了自定义的jquery-ui(由他们的网站使用我想要的小部件生成),并且校验和检查失败。

您的加载项包括一个JavaScript库文件,该文件与已知发行版的校验和不匹配。 我们要求所有附加组件使用未经修改的发行版,这些发行版可直接从开发人员的网站获得。 我们接受从“ ajax.googleapis.com”,“ jquery.com”或“ jqueryui.com”下载的JQuery / JQuery-UI库; 并直接使用。 (文件名更改无所谓),很抱歉,但是我们不能接受已修改,重新配置或自定义的库。

公平的说,我可以下载完整的并重新提交,但是我想知道是否可以链接到一个?

如果我尝试这样做:

contentScriptFile: [self.data.url("https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"), self.data.url("https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.3/jquery-ui.min.js"), self.data.url("api.js")],

运行时出现错误,告诉我内容脚本大部分是本地的。 谷歌和API似乎都对我来说是虚幻的答案。

有人知道这是否可行吗?

干杯

丰富

self.data.url("https://...")

似乎您尚未阅读有关data.url() 的文档

它明确指出

data.url()方法返回指向嵌入式数据文件的resource:// URL。

这意味着您无法链接到外部资源。


有人知道这是否可行吗?

不,与常规的Web内容相比, contentScriptFile运行特权(略有提升),这就是为什么不允许您从可能会更改并且理论上将来可能注入恶意代码的源中加载脚本。

如果您希望依赖外部库并保持最新状态,则可以编写一个小的构建脚本,该脚本在构建新XPI时始终下载最新版本。

原则上,您可以仅通过特权XHR加载脚本,然后将其作为字符串传递,但这可能不会通过AMO审查。


和一些个人意见:由于您针对的是特定的浏览器,因此它的跨浏览器逻辑实际上并不需要jquery,因此现代的Web API提供了许多便捷的方法,而您仅需使用普通的ES6-javascript和state最先进的DOM API。 迭代器和箭头函数还使批量操作相当简洁。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM