提问者:小点点

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


同样的代码在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);


}

共2个答案

匿名用户

问题出在行PostAVWorkspaceTab(ParamURL,title=“”)--具体来说是第二个参数-title。

IE不支持参数中的默认值。 请尝试以下操作:

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

匿名用户

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

参考:

默认参数

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

要修复此问题,您可以尝试删除参数的默认值,只有尝试传递该参数才能修复此问题。

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