[英]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.