手机上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); }
<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>
我这边测试还是直接就退出了
有些低版本浏览器不兼容 试试更新浏览器?
我将浏览器更新至最新版后测试依然无效