popstate 监听app、浏览器的返回

在实际开发中,遇到需要在当前web页面监听app、浏览器返回的情况,进过一顿搜索后,终于找到一种比较靠谱的方式!

下面话不多说,直接上代码:

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no" />
	<title>popstate 监听返回</title>
	<style type="text/css">
	</style>
</head>
<body>
    
	<div class="cat">应用场景一:监听当前页面返回</div>
    <div class="cat">应用场景二:监听第三方返回</div>
	<a href="http://baidu.com">跳转到百度</a>
	<script>
	    window.onload = function(){
	        pushHistory();
            setTimeout(function(){ //处理:部分机型加载页面时即会执行popstate事件的问题
              /*popstate触发时机:当前历史条目为pushState创建时,事件被触发*/
              window.addEventListener('popstate',function(event){
                    let state = event;
                    console.log(state);
                    alert(state + "-------------");
              },false);
            },100);
	    }
	    /*pushState:往history添加历史条目
	      state:状态对象,popstate事件触发时,该对象会传入回调函数  
          title:新页面标题(目前浏览器忽略该参数)
	      URL:新的历史URL记录*/
	    function pushHistory(){
	        var state = {title: "呵呵哒",url: "#"};
	        window.history.pushState(state,"新页面标题#","new_url");
	    }
	</script>
</body>
</html>

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值