我不相信这是可能的,但我想我会试一试。
作为我正在处理的项目的一部分,用户可以通过标准锚链接导航到另一个站点上的页面。目标页面有时响应速度很慢,客户端希望设置“超时”,以便在导航到目标页面时花费太长时间,取消浏览器导航并显示消息。
是否可以使用Javascript取消正在进行的浏览器导航(即已经对目标站点发出请求)?如果是这样,怎么样?
答案 0 :(得分:2)
我进行了一个简单的测试,这是可能的。我使用PHP进行测试,但如果您使用其他语言,这不会成为问题。最重要的是JavaScript可以在cancel.php
中看到它。请参阅示例代码:
<?php
sleep(30);
echo 'hello';
?>
<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%。 请发表你的发现!