Javascript 将AngularJS 1.4.7注入IE crossrider扩展

Javascript 将AngularJS 1.4.7注入IE crossrider扩展,javascript,jquery,angularjs,internet-explorer-11,crossrider,Javascript,Jquery,Angularjs,Internet Explorer 11,Crossrider,我正在开发一个使用Crossrider框架的浏览器扩展。我在用电话 appAPI.resources.includeJS('js/angular.min.js'); 将angular.js注入扩展。这在Chrome上运行良好,但在IE11上我得到了错误 ---- JS Exception from: IE test staging ---- Error: Object expected Source: Microsoft JScript runtime error Location: reso

我正在开发一个使用Crossrider框架的浏览器扩展。我在用电话

appAPI.resources.includeJS('js/angular.min.js');
将angular.js注入扩展。这在Chrome上运行良好,但在IE11上我得到了错误

---- JS Exception from: IE test staging ----
Error: Object expected
Source: Microsoft JScript runtime error
Location: resources
Line: 131
我环顾四周,发现了一些答案,这些答案表明jQuery可能丢失了,或者代码本身中可能有一个逗号。然而,我正在使用

var jq = document.createElement('script');
jq.src = "http://code.jquery.com/jquery-1.11.3.js";
document.getElementsByTagName('body')[0].appendChild(jq);
将jquery注入到文档中,这样就不会有问题了。至于JS中是否有尾随逗号的可能性,我将AngularJS从缩小版改为未统一版,但仍然得到了相同的错误,这让我觉得错误中的行号没有意义。如果这是关心,或者忘记这一点,不管是什么情况。有人能告诉我发生了什么事以及如何修复吗

另外,我的环境是在VMWare Workstation 12上的Windows 7 Ultimate 32位,在Ubuntu 14.04 LTS x64位机器上

我认为这里有一个混合的问题。在扩展页面范围内运行,添加的jq元素在HTML页面范围内运行。如果要将AngularJS添加到HTML页面范围,请使用以下命令:

var jq = document.createElement('script');
jq.src = "https://http://code.jquery.com/jquery-1.11.3.js";
document.getElementsByTagName('body')[0].appendChild(jq);
appAPI.resources.addInlineJS('js/angular.min.js');

[披露:我是一名Crossrider员工]

我希望在扩展范围内加入angular。那么为什么我会得到对象预期的错误呢?虽然我不熟悉AngularJS,但从我所看到的情况来看,它不需要jQuery。一般来说,IE对JS代码更为挑剔,因此它可能不喜欢Angular库中的某些东西。我建议您使用Angular的未统一版本并添加调试代码,以确定问题的确切位置和原因。这需要调试超过30k行代码。我怀疑这是可能的。你注意到jquery url中的双重协议了吗?这不是一个完整的工作示例;因此,人们不能像得到一个plunker/jsfiddle那样帮助他们……我不能为此给出一个plunkr。但是你可以自己试试。转到crossrider.com,注册它,并将我的代码添加到extension.js文件中,然后在IE 11上运行它