如何检测后退按钮和新窗口?

时间:2011-03-21 13:59:16

标签: javascript window new-operator back-button

我毫不怀疑这些可能在互联网上记录并由Google编制索引 - 但在浏览了关于禁用的讨论的链接页面和页面后,我认为我会问看看是否有人可以提供有关仅仅检测其使用情况的有用答案。

其中一个better articles中描述的禁用后退按钮的方法仅适用于创建页面转换 - 因此用于检测的次数不多。

window.history.next的存在可能会提供一种检测后退按钮的机制 - 但它有多广泛支持?它需要不寻常的特权吗?

Jonathan's answer这篇文章看起来很有希望 - 但预先假设我可以在第一次登陆时设置窗口名称 - 我想我可以使用缺少cookie来检测第一次打击。还有其他想法吗?

TIA

2 个答案:

答案 0 :(得分:0)

使用sessionStorage / localStorage。

if (!sessionStorage.hasBeenHereBefore) sessionStorage.hasBeenHereBefore = true;
else {
    // Code to run if they've been here before.
}

如果您使用sessionStorage,那么如果他们关闭浏览器并返回,它似乎是第一次,但如果您使用localStorage,它将永远保留。

您可以尝试寻找一些秘密事件,例如:

window.addEventListener('historyback', function () {}, false);
window.addEventListener('navigateback', function () {}, false);
window.addEventListener('returntopage', function () {}, false);

答案 1 :(得分:0)

我前一段时间写了一些代码。该脚本从未经过全面测试,但您应该能够提取一些技术以获得与从中检测后退按钮相同的效果。

http://pastebin.no/32fx