在浏览器/选项卡上关闭会话

时间:2010-12-22 10:48:29

标签: javascript session input click onclick

我一直在努力解决how to close session when browser/tab is closed。继Daniel Melo的回答+设置会议的coockie TTL为0之后,我几乎准备就绪,但Daniel的提示不适用于输入类型= [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')。长度是> 0。 当然我错过了一些但却找不到的东西。

1 个答案:

答案 0 :(得分:2)

好的,这里有一些提示:

- 替换你添加的三行:

$(':button').click(okEvent);

- 不要在Button输入上绑定提交事件,不要与提交输入(more)混淆:

<input type="submit" value="Submit" />

- 如果您使用Button提交表单,请使用提交输入并删除所有添加内容,因为提交事件已附加到表单中:

$("form").bind("submit", okEvent );

请检查this测试以更好地理解按钮输入。