检测是否正在加载新页面

时间:2014-03-06 12:29:57

标签: javascript

有没有办法通过JavaScript检测是否正在加载新页面。我举个例子。

我在这个链接上加载了另一个页面:

<a href='http://google.com/'>Click here</a>

点击此处后没有页面加载:

<a href='#anchor'>Click here</a>

这里没有页面加载:

<a href='javascript:void(0);'>Click here</a>

是的,这是一个页面加载。但href属性不是正在加载的页面的URL:

<a href='javascript:void(document.location="http://google.com/");'>Click here</a>

这在href中有URL,但不会加载页面。 onclick属性仅用于说明问题。在现实世界中,onclick事件可能由事件监听器附加并由event.preventDefault()在代码中的其他位置取消:

<a href='http://google.com/' onclick='return false;'>Click here</a>

现在想象一下,下一页需要很长时间才能加载。我需要的是在点击链接后检测是否正在加载新页面的方法。或者在表单提交后。或者在任何可能导致页面加载的操作之后。我知道要观看哪些动作,但我不能确定它们是否必然会触发页面加载。

甚至可能吗?如果是这样,怎么样?

感谢。

1 个答案:

答案 0 :(得分:5)

可能beforeunload事件正是您所寻找的。例如,通常使用此类事件处理程序,通过显示带有自定义文本消息的确认对话框来防止用户意外地离开带有填充表单的页面。