Js实现阻止浏览器返回的功能

无论pc端还是移动端,浏览器都会带有后退按钮或后退键.主要方便我们能返回以前访问过的页面,但有时候我们不得不关闭这个功能.尤其是对于一些推广落地页,用户进入后不希望它返回。

目前有很多推广的朋友也在问,如何实现:“怎样才能禁用浏览器的后退按钮?”,或者“怎样才能防止用户点击后退按钮返回以前浏览过的页面?

在禁止后退的页面直接添加下面的js代码即可:

(function(){
	if(window.history && window.history.pushState) {
		window.onpopstate=function () {
	            window.history.pushState('forward', null, '');
	            window.history.forward(1);
		};
	}
    window.history.pushState('forward', null, '');//在IE中必须得有这两行
    window.history.forward(1);
})();

简要说明:

1.history.pushState()属于html5的方法,故存在一定的兼容性,它主要是在不刷新浏览器的情况下,创建新的浏览记录并插入浏览记录队列中。

2.window.history.forward() :相当于用户在浏览器的工具栏上点击前进按钮.参数代表页面索引:(当前页:0,上一页:-1,下一页:1)。

3.window.onpopstate来监听url的变化,并且可以获取存储在该历史记录点的状态对象。

在Vue.js 3中,阻止浏览器关闭可以通过监听浏览器的`beforeunload`事件来实现。下面是具体的实现步骤: 1. 在Vue组件的生命周期`mounted`或者`created`钩子函数中,添加一个事件监听器来捕获浏览器的`beforeunload`事件。 ```javascript mounted() { window.addEventListener('beforeunload', this.handleBeforeUnload); }, ``` 2. 在Vue组件的`beforeUnmount`钩子函数中,移除之前添加的事件监听器。 ```javascript beforeUnmount() { window.removeEventListener('beforeunload', this.handleBeforeUnload); }, ``` 3. 在Vue组件中定义一个事件处理函数`handleBeforeUnload`,该函数会在浏览器关闭或刷新之前被调用。 ```javascript methods: { handleBeforeUnload(event) { event.preventDefault(); // 在此处可以添加一些提示用户的逻辑,例如确认是否关闭页面 event.returnValue = ''; // Chrome需要返回一个空字符串 }, }, ``` 通过以上步骤,当用户尝试关闭或刷新浏览器窗口时,会触发`handleBeforeUnload`函数,我们可以在该函数中进行一些操作,例如弹出提示框询问用户是否确认离开页面。使用`event.preventDefault()`可以阻止默认的关闭行为,然后通过`event.returnValue`设置返回浏览器的文本,以便实现浏览器关闭的阻止效果。 需要注意的是,尽管我们可以监听`beforeunload`事件来阻止浏览器关闭,但这并不是一种推荐的做法。浏览器提供了这个事件是为了给用户提供一个确认离开页面的机会,如果过度使用会给用户带来困扰。在大部分情况下,我们应该尊重用户的操作,不要阻止他们关闭浏览器
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值