在页面关闭前执行 JS 函数 |重定向[重复]

Posted

技术标签:

【中文标题】在页面关闭前执行 JS 函数 |重定向[重复]【英文标题】:Execute JS function just before page close | redirect [duplicate] 【发布时间】:2015-08-12 00:28:12 【问题描述】:

问题:

我正在使用 ASP.NET 网络表单,c#。

我需要在页面关闭之前执行一个 JS 函数——无论它以何种方式关闭——作为重定向或任何其他方法。

额外信息:

作为一些额外的信息;该函数将是一个到不同页面的 HTTP POST,我需要一些服务器端代码来执行。

考虑到这些信息 - 允许我在页面关闭时执行服务器端代码的解决方案也适用于我。

【问题讨论】:

不可能,不可能。过去,该功能被人们滥用得太多了。 一个 onpageunload 事件,但没有什么可以确保您的 ajax 不会首先超时——事实上它很可能。也无法处理“页面关闭”网络连接丢失、断电等问题。 由于这是一个客户端功能,您不需要与 ASP.NET 相关的解决方案,只需要 javascript 我认为这可能是不可能的。会想一些其他的解决方案来解决我的问题。谢谢。 【参考方案1】:

看看JavaScript函数window.onbeforeunload

本质上,浏览器会在检测到页面正在关闭时触发此事件,并允许您通过从该函数返回字符串来自定义消息。

但是,您无法控制用户是否要提前或意外强制关闭页面。

window.onbeforeunload = function(e) 
    // do some ajax post here
    // 

    // Display a message (or generic message in some browsers) and allow the user to cancel leaving the page.
    return 'Dialog text here.';
;

请注意,此解决方案会尝试警告用户并允许取消卸载。这可能不适合您,但应该可以。

https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload

【讨论】:

以上是关于在页面关闭前执行 JS 函数 |重定向[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Struts2页面重定向

Linux 第三天 重定负管道符环境变量

将 WWW 重定向到非 WWW,或者相反? [关闭]

passport.js ,在弹出窗口中进行身份验证后,将其关闭并重定向父窗口

在 Next.js 中,如何在 axios 拦截器中重定向页面?

如何将客人重定向到登录页面,在laravel 5.2登录后重定向回来[关闭]