如何取消已在使用JavaScript的浏览器导航

时间:2012-11-07 21:36:08

标签: javascript browser

我不相信这是可能的,但我想我会试一试。

作为我正在处理的项目的一部分,用户可以通过标准锚链接导航到另一个站点上的页面。目标页面有时响应速度很慢,客户端希望设置“超时”,以便在导航到目标页面时花费太长时间,取消浏览器导航并显示消息。

是否可以使用Javascript取消正在进行的浏览器导航(即已经对目标站点发出请求)?如果是这样,怎么样?

2 个答案:

答案 0 :(得分:2)

我进行了一个简单的测试,这是可能的。我使用PHP进行测试,但如果您使用其他语言,这不会成为问题。最重要的是JavaScript可以在cancel.php中看到它。请参阅示例代码:

sleep.php

<?php
sleep(30);
echo 'hello';
?>

cancel.php

<h1>hello?</h2>
<script type="text/javascript">
location.href='sleep.php';
setTimeout(function(){
    location.href='#';
    alert('it is taking too long to respond, probably the site is down!');
}, 10000);
</script>

运行cancel.php后,它将重定向到sleep.php。加载10秒后,它将停止加载sleep.php并断定该站点已关闭。

答案 1 :(得分:-1)

您可以重定向到其他地方,而当前的DOM仍处于活动状态。

我运行了这个简单的测试,然后重定向到yahoo.com

$("#btn").click(function() {
    document.location.href = "http://www.google.com";
    document.location.href = "http://www.yahoo.com";
});​

我没有用计时器测试,但看起来它应该可以工作,虽然我不能确定100%。 请发表你的发现!

相关问题