繁体   English   中英

我可以在Javascript中取消location.href吗?

[英]Can I cancel location.href in Javascript

听起来可能很傻,但我需要这个功能。

一旦执行,我可以以某种方式取消Javascript中的location.href ='url'吗?

例如,单击按钮我正在使用一些资源密集型页面更改当前页面,我想为用户提供一个选项,以便在下一页需要很长时间加载时可以取消它。

是的你可以。 您可以使用beforeunload事件显示用户可以确认或取消的警报。 当用户取消它时,页面导航被取消。

例:

window.addEventListener('beforeunload', (event) => {
  // Cancel the event as stated by the standard.
  event.preventDefault();
  // Chrome requires returnValue to be set.
  event.returnValue = '';
});

请注意,并非所有浏览器都以相同的方式实现此功能,并且Chrome要求您在事件上设置returnValue属性以触发警报,即使HTML规范说您应该调用event.preventDefault()来触发它。

@Prutswonder建议的是在卸载页面之前采取行动的唯一方法。 在卸载旧页面之前无法加载新页面。 这是最常见/最直接的解决方案。

如果您仍然在当前页面中时需要加载新页面,则可以使用框架/ iframe。

将一个包含2个iFrame的页面放在一起。

页面控制了2个内部框架=>内部框架可以通知已完全加载的页面。 (在onLoad事件中)如果它已加载,页面可以将该iFrame放在顶部。

如果用户决定,页面可以中止加载。 将iFrame加载到底部。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM