是否有可以在所有浏览器上使用的onbeforeunload函数?
window.onbeforeunload = function () {/**/}
点击我网站的链接时,我想要执行一些脚本。
目前我正在使用基于onclick事件的脚本,但这不会在下一页加载之前执行完整脚本。因此,在我的浏览器网络中,它将返回HTTP状态取消。我想要一个函数检查是否已加载此函数中的所有调用,然后加载新页面。这可能吗?
答案 0 :(得分:0)
您可以尝试window.onunload
。
但是你不能在这个回调中执行重定向。
作为解决方法,在链接上的click事件中,您可以使用Promise来执行代码,使用await
以等待Promise解析,然后执行单击操作。这是一个小例子:
async function onClickFunction() {
await new Promise(function(resolve, reject) {
// here my code
resolve();
}).then(function(data) {
// here my link action
});
}
答案 1 :(得分:0)
我建议不要使用该事件,除非您警告用户数据未保存或沿着这些行保存。
可能更好的做法是阻止导航click
事件的链接的默认操作,然后执行您想要执行的操作,然后在完成后重定向浏览器。使用Jquery的示例:
$("a").click(function (e){
//stop the link from navigating
e.preventDefault();
//do something
//once something is done, navigate browser
window.location = $(this).attr("href");
})
jsfiddle例子: