检测是否正在加载新页面

Fcz*_*bkk 3 javascript

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

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

<a href='http://google.com/'>Click here</a>
Run Code Online (Sandbox Code Playgroud)

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

<a href='#anchor'>Click here</a>
Run Code Online (Sandbox Code Playgroud)

此处没有页面加载:

<a href='javascript:void(0);'>Click here</a>
Run Code Online (Sandbox Code Playgroud)

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

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

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

<a href='http://google.com/' onclick='return false;'>Click here</a>
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢.

Mar*_*lin 5

可能beforeunload事件就是你要找的东西.例如,通常使用这样的事件处理程序,以通过显示具有自定义文本消息的确认对话框来防止用户意外地离开具有填充表单的页面.