使用Javascript是否可以将自定义函数挂钩到浏览器后退按钮,同时防止默认事件?
简单地说,用户点击浏览器后退按钮,而不是被带回我网站上的上一页,我的功能就会触发。我的目的不是阻止用户离开我的网站。
类似下面的伪代码:
window.backbutton.click(function(e){ preventDefault(e); myFunc(); })
仅供参考我实际拥有的是一个由视图中的按钮控制的内部后退/前进系统,我想在用户点击浏览器时触发我的按钮。
答案 0 :(得分:3)
您应该查看浏览器历史记录https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history。它是在单页网站上模拟页面(后退和前进)的新标准。
答案 1 :(得分:0)
你可以这样做
除非已完成和/或提交,否则$(window).bind("beforeunload", function() { return "Are you Sure you want to do this even though there are internal navigation buttons? if you do whatever you have done so far
将会消失“; // 返回您想要的任何消息 });
编辑:此方法显示带有消息的确认信息 自动在确认窗口中放置按钮
作者还明确表示他不想阻止用户 离开他的网站请参阅js fiddle http://jsfiddle.net/JW9fX/
亚伦 - “更新的问题,我不想阻止他们离开我的 site - Aaron 27分钟前“
编辑:没有明确的方法只在背面显示消息 在我的知识按钮我也看了,只见过 拿起后退按钮的方法是
$(window).bind("beforeunload",function(){return;})
和$(window).onbeforeunload = function(){return;}
他们都接受了 当页面刷新或任何其他导航远离 当前页面。这是目前可以提供的最佳答案 在2014年
编辑:
上面的适用于所有卸载事件
通过所有较低级的对象搞乱它,它无法通过javascript完成,直到某人决定让所有主要浏览器为每个卸载事件使用特定名称而不是仅仅是卸载事件
所以答案是否定的,你不能将自定义功能挂钩到浏览器后退按钮,同时使用javascript阻止默认事件