请教一个关于浏览器返回的问题、

xiatianlong
  • 2.2k

当前代码如下:


$(function () {
    window.history.pushState({}, "");
    window.addEventListener("popstate", function (e) {
        setTimeout(function () {
            alert(navigator.userAgent.toLowerCase());
            if (/android/.test(navigator.userAgent.toLowerCase()) && isWeiXin()){
                alert("android wechat");
                WeixinJSBridge.invoke('closeWindow');
            } else if (/(iphone|ipad|ipod|ios)/.test(navigator.userAgent.toLowerCase()) && isWeiXin()){
                alert("ios wechat");
                WeixinJSBridge.invoke('closeWindow');
            }else{
                alert("other");
                var userAgent = navigator.userAgent;
                if (userAgent.indexOf("Firefox") != -1 || userAgent.indexOf("Chrome") !=-1) {
                    window.location.href="about:blank";
                }else if(userAgent.indexOf('Android') > -1 || userAgent.indexOf('Linux') > -1){
                    window.opener=null;window.open('about:blank','_self','').close();
                }else {
                    window.opener = null;
                    window.open("about:blank", "_self");
                    window.close();
                }
            }
        }, 300);
    });
});


/**
 * 判断是否是微信内置浏览器
 *
 * @returns boolean
 */
function isWeiXin() {
    var ua = window.navigator.userAgent;
    return ua.toLowerCase().indexOf("micromessenger") > 0;
}

在android的微信、移动浏览器里都是在按下返回才出发了这段代码。
为什么在ios的微信浏览器或safari里进这个画面就触发了呢???

回复
阅读 2.3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏