Javascript 如果用户关闭浏览器,则运行函数
我对这个函数有问题。我会解释: 若用户关闭浏览器,我必须执行此函数。此函数是用JavaScript-saveCookiesScriptPrefOnLogout()编写的 我有以下解决方案(我使用StackOverFlow的信息编写): 此解决方案的问题是:每个浏览器都会显示带有问题“是否确实要关闭”的窗口 我必须隐藏此信息/窗口。第二个问题(不太重要但仍然存在)-当我单击链接或表单提交时,FF和IE运行此功能。我需要忽略一个链接和表单提交 解决方案必须是交叉浏览器解决方案(即,windows上的Chrome、FF。最重要的是IE)。我可以使用PHP和javascript 你能告诉我如何解决这些问题吗?试试这个:Javascript 如果用户关闭浏览器,则运行函数,javascript,Javascript,我对这个函数有问题。我会解释: 若用户关闭浏览器,我必须执行此函数。此函数是用JavaScript-saveCookiesScriptPrefOnLogout()编写的 我有以下解决方案(我使用StackOverFlow的信息编写): 此解决方案的问题是:每个浏览器都会显示带有问题“是否确实要关闭”的窗口 我必须隐藏此信息/窗口。第二个问题(不太重要但仍然存在)-当我单击链接或表单提交时,FF和IE运行此功能。我需要忽略一个链接和表单提交 解决方案必须是交叉浏览器解决方案(即,windows上的
var inFormOrLink = false;
$('a').live('click', function() { inFormOrLink = true; });
$('form').live('submit', function() { inFormOrLink = true; });
$(window).bind('beforeunload', function() {
if( !inFormOrLink ) {
saveCookieScriptPrefOnLogOut();
}
});
如果从事件处理程序返回
undefined
(noreturn
语句隐式返回undefined
),则不会出现对话框。。另外,您调用了saveCookiesScriptPreFonLogout
,而不考虑inFormOrLink
为什么需要依赖用户关闭浏览器?页面加载完毕后,为什么不能编写cookie?在无状态环境(如网页)中,这是一种错误的开发方法。下面是一个类似的问题:
var inFormOrLink = false;
$('a').live('click', function() { inFormOrLink = true; });
$('form').live('submit', function() { inFormOrLink = true; });
$(window).bind('beforeunload', function() {
if( !inFormOrLink ) {
saveCookieScriptPrefOnLogOut();
}
});