繁体   English   中英

在Firefox扩展中注入动态脚本

[英]Inject dynamic script in Firefox extension

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

  1. 用XMLHttpRequest加载并注入网页
  2. 将其作为<script src="example.com/myscript.js"></script>并使其自身加载

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

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

有任何想法吗?

您是在说要动态脚本具有chrome特权吗? 如果是这样,为什么不使用XMLHttpRequest加载它,将其保存到磁盘,然后将其作为JavaScript模块(https://developer.mozilla.org/en/JavaScript_code_modules/Using)导入。 显然,出于安全方面的考虑,因为您是从Web授予脚本无限特权的,但是,如果您控制脚本的源代码,那么可能还可以。 如果您真的很担心,可以使用HTTPS下载脚本,这样可以防止有人拦截流量。

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

暂无
暂无

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

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