在下面的函数中,IE 表示缺少“)”:

In the function below, IE says that ')' is missing:

相同的代码在 chrome 和 edge 中工作,但在 ie

中不工作
function PostAVWorkspaceTab(ParamURL, title = "") {

      var DecodedURL = decodeURL(ParamURL); 
      const queryStringTitleValue = getQueryStringValueByKey(DecodedURL, 'Title');

      var jsonData = {};
      jsonData["MessageId"] = 1;
      jsonData["Title"] = queryStringTitleValue ? queryStringTitleValue : title;
      jsonData["URL"] = DecodedURL;
      jsonData["ObjectId"] = 0;

      try {
         window.parent.postMessage(JSON.stringify(jsonData), "http://localhost:9002/TokenInfo");
      }
      catch (e) { }

      console.log("PostAVWorkspaceTab(4): send message to open tab with URL = [" + DecodedURL + "] - " + "http://localhost:9002/TokenInfo" + jsonData);


}

问题在于 PostAVWorkspaceTab(ParamURL, title = "") - 具体来说是第二个参数 - title。

IE 不支持参数中的默认值。试试这个:

PostAVWorkspaceTab(ParamURL, title) {
  if (title === undefined){
    title = "";
  }
  ....
}

正如其他社区成员所告知的,IE 浏览器不支持默认参数。

参考:

Default parameters

这就是您在 IE 浏览器中遇到错误的原因。

要解决此问题,您可以尝试删除参数的默认值,只尝试传递参数即可解决此问题。

您可以尝试实现任何其他逻辑,例如传递空值并检查该值是否为空,然后尝试使用函数中变量的默认值。