我在使用 IE9 时遇到了这个奇怪的问题(没有在任何其他 IE 中对其进行测试)——当我登录网站时,每当我刷新页面时,都会触发以下代码:
jQuery(window).bind("beforeunload", function() {
$.get('session_destroy.php', function() {
// alert('done');
});
});
有趣的是,当我调用开发人员工具 F12 - 然后刷新时,我可以看到对 session_destroy.php 的快速调用 - 但它不会让我在刷新时注销!
这是我的文档定义:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> //- note this i need because on intranet sites IE gt 8 force compatibility mode of IE7 - this makes all jquery sucks..
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
不知道这是否相关,但有时我必须登录两次,因为它从第一次开始就没有这样做......我也使用ajax登录:
$(document).ready(function(){
$("#submit").click(function(){
username = $("#username").val();
password = $("#password").val();
$.ajax({
type: "POST",
url: "login_db.php",
data: "username="+username+"&password="+password,
success: function(html){
if(html.length>0)
{
switch(html)
{
case "1": tab = "Production";
break;
case "2": tab = "Recordings";
break;
default: tab = "Summary";
}
window.location.hash = '';
var url=window.location;
window.location.href= url+tab;
location.reload();
}
else
{
$("#add_err").html("Wrong username or password");
}
}
});
return false;
});
});
在 Firefox 和 Chrome 中一切正常