将AngularJS 1.4.7注入IE crossrider扩展中
Injecting AngularJS 1.4.7 into an IE crossrider extension
我正在使用Crossrider框架为浏览器开发一个扩展。我正在使用线路
appAPI.resources.includeJS('js/angular.min.js');
将angular.js注入延伸部分。这在Chrome上运行良好,但在IE 11上我得到了错误
---- 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的缩小版改为未缩小版,但仍然得到了相同的错误,这让我认为错误中的行号没有意义。如果这就是护理,或者忘记这一点,不管情况如何。有人能告诉我发生了什么以及如何解决吗?
PS。我的环境是在Ubuntu 14.04 LTS x64位机器上的VMWare工作站12上的Windows 7 Ultimate 32位
我认为这里存在混合作用域问题。appAPI.resources.includeJS在扩展页作用域中运行,您添加的jq元素在HTML页作用域内运行。如果您想将AngularJS添加到HTML页面范围,请使用appAPI.resources.addInlineJS,如下所示:
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的员工]
相关文章:
- 为什么这在IE中的工作方式与在Firefox中不同
- 后焦点更改为IE 11中的地址栏,而不是转移到表单中的下一个控件
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- jQuery blueimp文件上传:将N-1个文件上传到IE中的服务器
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- 设置倒计时计时器,IE出现问题
- 仅在IE中,javascript中的时区名称不正确
- 在IE中加载Firebug Lite时出现问题
- 为什么我得到错误IE修剪方法是't支持
- IE中的CSS翻转动画:翻转的一面显示镜像内容
- 通过具有IE<11
- IE在将字符串转换为日期时从日期中删除4小时
- 列表样式在IE中未设置为none,但在IE中适用
- IE/Chrome中未定义的函数,但Firefox中没有
- Jquery Modal表单登录与AJAX-ASP经典上的IE 9
- window.opener.document在ie中不起作用
- IE中关于ZK和JavaScript集成的一些错误
- 为什么Telerik cdn在IE中不起作用
- 滚动在Chrome中有效,但在Firefox或IE中无效
- 将AngularJS 1.4.7注入IE crossrider扩展中