JavaScript 在 IE11 中给我脚本错误 1003

JavaScript in IE11 giving me script error 1003

我有一个带有手风琴和一些 javascript 的网站。在 Firefox 中一切正常,但在 IE11 中出现错误

SCRIPT1003: Expected ':'

我将范围缩小到 .js 文件中的这段代码:

var nmArray = new Array();

function saveplayers() {
  var x;

  for (x=0;x<32;x++) {
    var y = "i"+eval(x+1);
    nmArray[x]=document.getElementById(y).value;
  }
  var request = $.ajax({
    type: "POST",
    url: "savep.php",
    data: ({ nmArray }),
    cache: false
  });
}

错误提示 ({ nmAray })

中的 nmArray 之后应该有一个冒号

如果我把这个功能去掉,我的网站又能用了。为了调试,我删除了我的 HTML,我什至没有调用这个函数。我刚刚包含了 .js 文件。

支持 ES6 的浏览器中的语法 ({nmArray}){nmArray: nmArray} 的快捷方式。 IE11 不支持此功能(基于您收到的错误),因此您必须将其重写为:

data: ({ nmArray: nmArray }),

示例见此处:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer#New_notations_in_ECMAScript_6

请注意,在这种情况下,您可以省略换行 ()

data: { nmArray: nmArray },