IE11抛出“SCRIPT1014:无效字符”,所有其他浏览器都在其中工作

时间:2017-03-27 13:57:56

标签: javascript jquery ajax

这是一个新的,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应用程序的一部分。

2 个答案:

答案 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"/>