我只在iphone和ipad上遇到一个奇怪的问题。我已经构建了以下功能:
在电子商务网站上,当用户在结帐成功页面上点击一次浏览器的后退按钮时,我会将他重定向到主页。这适用于所有主流浏览器。
但是,在IOS上,在点击后退按钮之前,页面会自动重定向到主页(在结帐成功页面上)
我有以下代码:
(function() {
var SuccessPage ={
extractDomain:function(url){
var domain;
if (url.indexOf("://") > -1) {
domain = url.split('/')[2];
}
else {
domain = url.split('/')[0];
}
domain = domain.split(':')[0];
return domain;
}
}
if(window.location.href.indexOf("checkout/onepage/success") > -1) {
history.pushState(null, null, window.location.href);
window.addEventListener("popstate", function(e) {
window.location.assign("http://"+SuccessPage.extractDomain(window.location.href))
});
}
})();
我尝试在pop状态事件中使用set timeout ..但是没有雪茄:( 我无法弄清楚为什么IOS不理解这段代码..
请帮忙
答案 0 :(得分:2)
让它运转起来:
if(window.location.href.indexOf("checkout/onepage/success") > -1) {
if(window.history && history.pushState && history.state !== undefined){
history.pushState(null, null, window.location.href);
window.addEventListener("popstate", function(event) {
if(navigator.userAgent.match(/(iPod|iPhone|iPad)/)){
if(!page_loaded){
page_loaded = true;
return false;
}else{
window.location.assign("http://"+SuccessPage.extractDomain(window.location.href))
}
}else{
window.location.assign("http://"+SuccessPage.extractDomain(window.location.href))
}
},false);
}
}