我现在正在进行扩展,我有一部分脚本是静态的(永远不会改变),另一部分是从网站加载的。而且,我看到了两种方式:
<script src="example.com/myscript.js"></script>
并自行加载但是,第二种方式可能无法访问我的扩展API(扩展文件中定义的功能,即在chrome://myext/script.js
中)
并且,第一种方式可能是不安全的,因为我必须在gBrowser.contentWindow.wrappedJSObject
对象中评估代码,该对象是加载页面的Window对象
有什么想法吗?
答案 0 :(得分: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