首页 新闻 搜索 专区 学院

红包悬赏JS问题:手机上UC浏览器后退事件如何监听?

0
悬赏园豆:30 [待解决问题]

手机上UC浏览器后退事件如何监听?翻遍了百度的方法都没有一个有用的

下面代码测试有效的有:QQ浏览器、360浏览器、搜狗浏览器

无效的浏览器:UC浏览器(不知道到底是什么原因)

目前网上大多浏览器通用的后退监听事件是

window.addEventListener("popstate", function (e) {

但唯独在UC浏览器(已更新至最新版本)上测试无效,这边想实现的就是,页面在手机浏览器点击后退的时候,始终保持在原页面

复制代码
function stay() {
        history.forward();
    }


    //实际的拦截操作
    function doIt() {
                window.history.pushState({ target: "MeanSure", random: Math.random() }, "", location.href);
                window.history.pushState({ target: "Final", random: Math.random() }, "", location.href);

            window.addEventListener("popstate", function (e) {
                    runTimes++;
                    Init();
                    //此处可调用一些自定义的操作,例如弹窗提示之类的
                    stay();//如此操作会停留在本页面
                    $("#result").text(runTimes);
                //}
            }, false);
    }

    function Init()
    {
        window.history.pushState({ target: "MeanSure", random: Math.random() }, "", location.href);
        window.history.pushState({ target: "Final", random: Math.random() }, "", location.href);
    }
复制代码
大da脸的主页 大da脸 | 初学一级 | 园豆:105
提问于:2021-03-16 13:34
< >
分享
所有回答(2)
0

<script language="javascript">
(function(window, location) {
history.replaceState(null, document.title, location.pathname+"#!/stealingyourhistory");
history.pushState(null, document.title, location.pathname);
window.addEventListener("popstate", function() {
if(location.hash === "#!/stealingyourhistory") {
history.replaceState(null, document.title, location.pathname);
setTimeout(function(){
alert("点击后退弹出此提示!")
},0);
}
}, false); }(window, location));
</script>

流星泪 | 园豆:214 (菜鸟二级) | 2021-03-16 17:29

我这边测试还是直接就退出了

支持(0) 反对(0) 大da脸 | 园豆:105 (初学一级) | 2021-03-16 17:44
0

有些低版本浏览器不兼容 试试更新浏览器?

ComeIntoBud | 园豆:226 (菜鸟二级) | 2021-03-16 18:46

我将浏览器更新至最新版后测试依然无效

支持(0) 反对(0) 大da脸 | 园豆:105 (初学一级) | 2021-03-17 08:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册