我想在不使用任何外部插件的情况下检测java-script / jquery中的浏览器后退按钮。
我将支持以下浏览器
IE8,IE9,火狐,铬
我搜索了这么多链接,并在代码项目
下面找到了部分代码<body onbeforeunload=”HandleBackFunctionality()”>
function HandleBackFunctionality()
{
if(window.event)
{
if(window.event.clientX < 40 && window.event.clientY < 0)
{
alert("Browser back button is clicked...");
}
else
{
alert("Browser refresh button is clicked...");
}
}
else
{
if(event.currentTarget.performance.navigation.type == 1)
{
alert("Browser refresh button is clicked...");
}
if(event.currentTarget.performance.navigation.type == 2)
{
alert("Browser back button is clicked...");
}
}
}
上面的代码工作正常的IE浏览器。这意味着我可以在IE浏览器中获取window.event.clientX和clientY值。但在chrome / firefox中无法正常工作。
单击浏览器后退按钮时,我需要刷新页面。
如何在所有浏览器(IE,firefox,chrome)中检测浏览器后退按钮点击事件
任何帮助将不胜感激。
答案 0 :(得分:4)
可以简单地将其放入您的网页,当用户点击回来时,它会调用一个函数。此调用的默认功能是javascript警报“单击后退按钮”。
要替换此功能,您只需要覆盖OnBack功能。这可以通过使用下面的代码来完成。
<script type="text/javascript">
bajb_backdetect.OnBack = function()
{
alert('You clicked it!');
}
</script>
现在,这将使用“您点击它!”警报替换“后退按钮单击”警报
支持以下浏览器
IE8,IE9,火狐,铬强>
Browser Back Button Detection
或者使用jquery
Catching browser back
使用标准javascript
Mastering The Back Button With Javascript
答案 1 :(得分:1)
由于您也支持IE 8和9,因此没有一种方法可以帮助您解决这个问题。您可以使用html5的历史API但不支持IE8和9.如上面评论中提到的mysteryos,您可以使用window.onPopState进行chrome,firefox等,对于IE,您可以创建一个单独的js文件并在用户使用IE时使用条件语句来触发它。
例如:
<!--[if lte IE 9]>
<script src="youIESpecificfile.js"></script>
<![endif]-->
在此处详细了解HTML5历史记录API:onPopState by mozilla
希望这有帮助!