这是一个新的,IE11在每个其他浏览器中运行的代码上抛出错误。
无论如何,经过几个小时的“修复”代码以便IE11不会自行落后我遇到了一个错误,我似乎无法找到解决方案。以下是有问题的代码:
$('input[name="messageAccount"]').change(function () {
$aButton.show();
var addedIds = $("#hdnfield").val();
if (addedIds == null || addedIds === "") {
$("#hdnfield").val(this.value);
} else {
$("#hdnfield").val(`${addedIds}${this.value}`);
};
});
这嵌套在Ajax请求中成功调用的内部。 IE的调试器说错误来自else
语句的内容,但它也读错了所有括号。例如,在Ajax请求的结束括号之后,此函数的左括号正在“关闭”...(希望这是有意义的)。
之前有没有其他人遇到过与IE类似的问题?我还有其他一些错误要解决,所以如果有任何回复,我会尽快回复。提前谢谢。
编辑:仅供参考我目前正在本地运行,并且将成为内部托管的Web应用程序的一部分。
答案 0 :(得分:28)
这是因为"`" IE不支持(模板字符串):http://caniuse.com/#search=string
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals
请参阅https://stackoverflow.com/a/27678299/2195875
要避免此错误,您可以使用ES6到ES5转发器,也可以直接编写有效的ES5 javascript:
而不是
`string text $ {expression} string text`
写
"字符串文字" +表达式+"字符串文字"
答案 1 :(得分:1)
您还可以将polyfill添加到您的html中:
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-polyfill/6.26.0/polyfill.min.js"/>