Angular 2+:Internet Explorer:无法获取未定义或空引用的属性“调用”

时间:2017-06-13 20:36:55

标签: javascript angular typescript webpack angular-cli

在Angular 4.2.4(Angular-CLI 1.1.3)中,IE11得到SCRIPT1002: Syntax errorSCRIPT5007: 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。

3 个答案:

答案 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中不同代码上出现的错误。有人否决了这个答案,却没有就这些问题是否有相同的解决方案提供任何反馈。

我目前尚无方法对此进行测试,但想引导人们使用可能解决方案。