在javascript / jquery中检测浏览器后退按钮而不使用任何外部插件

时间:2014-09-12 05:33:27

标签: javascript jquery html internet-explorer back-button

我想在不使用任何外部插件的情况下检测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)中检测浏览器后退按钮点击事件

任何帮助将不胜感激。

2 个答案:

答案 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

希望这有帮助!