在下面的函数中,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 浏览器不支持默认参数。
参考:
这就是您在 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);
}
问题在于 PostAVWorkspaceTab(ParamURL, title = "") - 具体来说是第二个参数 - title。
IE 不支持参数中的默认值。试试这个:
PostAVWorkspaceTab(ParamURL, title) {
if (title === undefined){
title = "";
}
....
}
正如其他社区成员所告知的,IE 浏览器不支持默认参数。
参考:
这就是您在 IE 浏览器中遇到错误的原因。
要解决此问题,您可以尝试删除参数的默认值,只尝试传递参数即可解决此问题。
您可以尝试实现任何其他逻辑,例如传递空值并检查该值是否为空,然后尝试使用函数中变量的默认值。