以下腳本用于在 IFRAME 中加載 Web 應用程式。
function openCashier(destination) {
postIsAnonymous(function (data) {
if (data.IsAnonymous) {
window.parent.location.replace('<%= ResolveUrl("~/Popup/login") %>');
} else {
stateReset('showUserBtn');
WCore.OpenTab('cashier');
$("#cashierPopup").addClass(destination);
$("#cashierFrame").attr('src', '<%= ResolveUrl(Routing.GetUrl("Root-TPAutologin")) %>?Destinazione=' destination);
}
});
}
在 Firefox 中一切正常,而在 Edge 和 Chrome 中出現錯誤 404。如果我嘗試在單獨的瀏覽器會話中加載 IFRAME 的內容,一切正常。我嘗試如下編輯javascript,擔心出現異步問題:
function openCashier(destination) {
setTimeout(function () {
postIsAnonymous(function (data) {
if (data.IsAnonymous) {
window.parent.location.replace('<%= ResolveUrl("~/Popup/login") %>');
} else {
stateReset('showUserBtn');
WCore.OpenTab('cashier');
$("#cashierPopup").addClass(destination);
$("#cashierFrame").attr('src', '<%= ResolveUrl(Routing.GetUrl("Root-TPAutologin")) %>?Destinazione=' destination);
}
});
}, 1000 * 20);
}
有了這個技巧,問題就解決了,表現很差。
PostIsAnonymous 代碼如下:
function postIsAnonymous(successFunc) {
$.ajax({
type: "POST",
url: '?checkIsAnonymous=1',
cache: false,
contentType: "application/x-www-form-urlencoded;charset=ISO-8859-15",
processData: false,
success: successFunc
});
}
您有什么建議可以讓我以更優雅的方式解決問題嗎?謝謝
uj5u.com熱心網友回復:
我用下面的代碼解決了這個問題。
function openCashier(destination) {
var dest = destination;
sessionManager.isAnonymous()
.then((data) => {
if (data.IsAnonymous) {
window.parent.location.replace('<%= ResolveUrl("~/Popup/login") %>');
}
else {
stateReset('showUserBtn');
WCore.OpenTab('cashier');
$("#cashierPopup").addClass(dest);
$("#cashierFrame").attr('src', '<%= ResolveUrl(Routing.GetUrl("Root-TPAutologin")) %>?Destinazione=' dest);
}
})
.catch((err) => {
console.error(err);
});
}
var sessionManager = {
isAnonymous: () => {
return new Promise((resolve, reject) => {
$.ajax({
type: "POST",
url: '?checkIsAnonymous=1',
cache: false,
contentType: "application/x-www-form-urlencoded;charset=ISO-8859-15",
processData: false,
success: function (data) {
resolve(data);
},
error: function (data) {
reject(data);
}
});
})
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/481339.html
標籤:javascript 谷歌浏览器 火狐 框架 微软边缘
上一篇:如何避免在Firefox中使用滾動條包裝長串列中的元素
下一篇:使用一個正則運算式查找兩個子字串
