同样的代码在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浏览器不支持默认参数。
参考:
默认参数
这就是您在IE浏览器中出现错误的原因。
要修复此问题,您可以尝试删除参数的默认值,只有尝试传递该参数才能修复此问题。
您可以尝试实现任何其他逻辑,比如传递空值,并检查该值是否为空,然后尝试使用函数中变量的默认值。