在Angular 4.2.4(Angular-CLI 1.1.3)中,IE11得到SCRIPT1002: Syntax error
和SCRIPT5007: Unable to get property 'call' of undefined or null reference
。我有我的polyfill,我会假设Webpack和Angular-CLI将完成其余的工作。我在这里缺少什么?
Unable to get property 'call' of undefined or null reference
之后说:bootstrap 50034e0a1f93dabcb117 (54, 1)
没有真实文件名。而Syntax error
表示它位于vendor.bundle.js (63117,26)
,看起来像是:
window.setTimeout(() => {
window.removeEventListener('click', suppressClick, true);
}, 0);
更新:以前对我来说应该更加明显,但这看起来像ES6代码,它应该编译为ES5。
答案 0 :(得分:4)
这里可能存在很多问题,但是我最近遇到了浏览器兼容性方面的问题,解决方案是使用polyfills。取消注释以下行:
/** IE9, IE10 and IE11 requires all of the following polyfills. **/
import 'core-js/es6/symbol';
import 'core-js/es6/object';
import 'core-js/es6/function';
import 'core-js/es6/parse-int';
import 'core-js/es6/parse-float';
import 'core-js/es6/number';
import 'core-js/es6/math';
import 'core-js/es6/string';
import 'core-js/es6/date';
import 'core-js/es6/array';
import 'core-js/es6/regexp';
import 'core-js/es6/map';
import 'core-js/es6/weak-map';
import 'core-js/es6/set';
运行您的应用程序。它至少应该为IE10
工作,至少它是为我们制定的。根据错误消息,它也可能适用于您。
答案 1 :(得分:0)
尝试从资产中加载jQuery polyfills:
在index.html的主管中:
<script src="assets/...">
我的意思是至少尝试https://plugins.jquery.com/webshims/
答案 2 :(得分:-1)
对于仍然遇到此问题的任何人,请尝试以下操作:
Angular 2+: IE 11 Unable to get property 'call' of undefined or null reference
如果您遇到的错误发生在一大堆看起来像这样的代码上:
window.setTimeout(() => {
window.removeEventListener('click', suppressClick, true);
}, 0);
...然后请让我知道该解决方案是否有效。我将更新此答案,并可能将此问题标记为重复。
我不认为这是同一时间的问题,因为bundle.js
中不同代码上出现的错误。有人否决了这个答案,却没有就这些问题是否有相同的解决方案提供任何反馈。
我目前尚无方法对此进行测试,但想引导人们使用可能解决方案。