在beforeunload事件处理程序中取消会导致浏览器URL更改

时间:2011-03-04 17:09:20

标签: javascript html browser dom-events

我正在使用beforeunload事件让用户确认他们想要离开我的网页(并丢失他们的输入)。它可以正常工作,除了一种情况:如果他们试图通过在地址栏中输入新的URL来导航,然后取消,它们仍然在我的页面上,但地址栏仍然显示他们的新目的地。

这是无害的但很烦人,所以我正在寻找一种方法将地址栏设置回我的URL,而不会导致刷新。

这是我的代码:

<script type="text/javascript">jQuery(window).bind('beforeunload', function () {
    return 'This will end your session.';
});
</script>

2 个答案:

答案 0 :(得分:3)

除非您实际将用户发送到新页面,否则无法以编程方式更改地址栏的内容。如果可以的话,网络钓鱼会更容易。 “嗯,浏览器说我在https://safebankingsite.com,我想可以输入我的SSN。”

答案 1 :(得分:2)

我甚至尝试在页面中添加一个锚点:

<a href="#foo">Change Location</a>

点击它甚至无法修复已删除的地址。我认为这证明你不能这样做。