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

3
在Angular 4.2.4(Angular-CLI 1.1.3)中,当在IE11浏览器上运行时,我遇到了SCRIPT1002:语法错误SCRIPT5007:无法获取未定义或空引用的属性“call”。我已经添加了必要的polyfills,我认为Webpack和Angular-CLI应该处理剩下的部分。我错过了什么吗? 无法获取未定义或空引用的属性“call”提示信息中跟随着:bootstrap 50034e0a1f93dabcb117 (54, 1)没有显示实际文件名。而语法错误则指向vendor.bundle.js (63117,26),它的代码如下:
window.setTimeout(() => {
    window.removeEventListener('click', suppressClick, true);
}, 0);

更新:我之前应该更明显地意识到这是ES6代码,它应该被编译为ES5。


您正在遇到语法错误和未定义的变量,但没有分享任何代码。 - Raven
嗨,BBaysinger,我遇到了相同的错误,尝试删除package.lock.json并再次运行npm install,这对我有用。 - Americo Arvani
你是用 "ng serve" 启动你的应用程序吗?你使用了任何 JQuery 代码吗? - Gambo
这可能是一百个问题中的一个。由于这是一个广泛的问题,您可能想分享一个git repo。正如@AmericoArvani所提到的,这很可能与您的npm安装或软件包有关。 - Z. Bagley
请问您能否检查一下下面的解决方案是否回答了您的问题? - Hash
显示剩余5条评论
3个回答

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
尝试取消注释pollyfils,仍然遇到相同的问题。 - Dipak Telangre
如果这个方法对你不起作用,可以尝试这个:https://dev59.com/JFUL5IYBdhLWcg3wtqBm#50070943 - BBaysinger

0

对于仍然遇到此问题的任何人,请尝试以下操作:

Angular 2 +:IE 11无法获取未定义或空引用的属性“call”

如果出现错误是在类似于以下代码块的一小部分代码中:

window.setTimeout(() => {
    window.removeEventListener('click', suppressClick, true);
}, 0);

...那么请让我知道解决方案是否有效。我将更新这个答案,并可能将这个问题标记为重复。

目前我不认为这些是同一个问题,因为错误出现在不同的bundle.js代码中。有人投票反对此答案,但没有提供任何关于这些问题是否有同一个解决方案的反馈。

我当前没有测试这个解决方案的方法,但希望引导大家去一个可能的解决方案。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接