[英]Loading an external script from within firefox extension
我目前正在重写一个firefox扩展,只能在公司内部使用。 我首先将大多数逻辑移到通过xul覆盖内的脚本标签加载的外部js文件中。 (我们发现很难让我们的员工不断升级,所以我认为我可以解决这个问题)。 像这样工作正常:
<overlay id="my-overlay"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:html="http://www.w3.org/1999/xhtml">
<script type="application/x-javascript" src="https://my.company.com/path/to/jquery.min.js/>
<script type="application/x-javascript" src="https://my.company.com/path/to/toolbar/main.js"/>
<toolbox id="navigator-toolbox">
<!-- some stuff here -->
</toolbox>
但是后来我有了一个疯狂的想法,那就是动态加载脚本文件,以便可以使用首选项来确定是从生产服务器还是从alpha / beta服务器加载该文件。 那是我惨败的时候。
我尝试了以下失败:
我没有尝试过Components.utils.evalInSandbox
但是由于它的限制,我担心它需要对其他代码进行重大更改,这不值得稍微简化开发周期。
通过阅读更多的mozilla文档和错误,似乎我基本上正在尝试打破各种安全问题(我原则上理解,但当然,就我而言,我对两端都拥有完全控制权)。
令我困扰的是,只要我对脚本标记进行硬编码,它似乎就可以正常工作,但是只有在尝试动态生成它时才会失败。 我应该扔毛巾还是有人知道做这项工作的方法?
您是否尝试过使用XMLHttpRequest读取文件然后仅调用eval()来运行文件的强力方法? 从表面上看,从安全角度看,这似乎很可怕,但是,正如您所说,将脚本标签与HTTP源URL一起使用基本上是同一回事。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.