【发布时间】:2010-12-22 10:48:28
【问题描述】:
我一直在尝试解决how to close session when browser/tab is closed。按照 Daniel Melo 的回答 + 将会话的 coockie TTL 设置为 0,我几乎准备好了,但 Daniel 的提示不适用于 input type=[button]。
var validNavigation = false;
function endSession() {
document.cookie = 'MYOWNSESSID=; path=/';
}
function okEvent(){
validNavigation = true;
}
function wireUpEvents() {
window.onbeforeunload = function() {
if (!validNavigation) {
endSession();
}
}
$("a").bind("click", okEvent );
$("form").bind("submit", okEvent );
// that's my adds that don't work
$(":button").bind("click", okEvent );
$(":button").bind("submit", okEvent );
$(":button").onclick= okEvent;
}
// Wire up the events as soon as the DOM tree is ready
$(document).ready(function() {
wireUpEvents();
});
在卸载发生之前将事件标记为有效的键。我试图钩住按钮点击但没有成功。 jquery 选择器工作正常,我检查了 $(':button').length 是否 > 0。 当然我错过了一些东西,但找不到它。
【问题讨论】:
-
您的代码没有问题...实际上不需要您的添加,因为您在表单上的提交事件上调用
okEvent函数。无论如何,您可以在 okEvent 中放置并警告以检查它是否真的设置了标志? -
感谢 ifaour。你所建议的正是我所做的。我在 okevent() 上发出了警报,所以我知道它什么时候被调用,除了输入类型 [button] 之外,它工作正常。
标签: javascript session input click onclick