0

我现在正在做一个扩展,我有一部分脚本是静态的(永远不会改变),另一部分是从网站加载的。而且,我看到了两种方式:

  1. 用 XMLHttpRequest 加载它并注入网页
  2. 把它作为一个<script src="example.com/myscript.js"></script>并让它自己加载

但是,第二种方式可能无法访问我的扩展 API(对在扩展文件中定义的函数,即在 中chrome://myext/script.js

而且,第一种方法可能是不安全的,因为我必须评估一个gBrowser.contentWindow.wrappedJSObject对象中的代码,该对象是加载页面的 Window 对象

有任何想法吗?

4

1 回答 1

0

你是说要动态脚本有chrome权限?如果是这样,为什么不使用 XMLHttpRequest 加载它,将其保存到磁盘,然后将其作为 JavaScript 模块导入 (https://developer.mozilla.org/en/JavaScript_code_modules/Using)。显然有安全方面的考虑,因为你从网络上给一个脚本几乎是无限的特权,但如果你控制了脚本的源,那么你可能没问题。如果您真的担心,您可以使用 HTTPS 下载脚本,这将防止有人拦截流量。

如果您希望代码以内容权限运行,但可以访问 chrome JavaScript 中的函数,那么您可能希望将 chrome 函数公开给内容,如本文所述:http ://weblogs.mozillazine.org/weirdal/archives /017188.html

于 2011-08-02T07:52:18.293 回答