有点问题。我想在浏览器或选项卡关闭时执行查询,但如果该页面中存在任何按钮或链接,并且我单击其中任何一个,则查询也会执行。.需要这方面的帮助
第一.php
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1
/jquery.min.js"></script>
<script type="text/javascript">
$(document).bind('keypress', function(e) {
if (e.keyCode == 116){
validNavigation = true;
}
});
// Attach the event click for all links in the page
$("a").bind("click", function() {
validNavigation = true;
});
// Attach the event submit for all forms in the page
$("form").bind("submit", function() {
validNavigation = true;
});
// Attach the event click for all inputs in the page
$("input[type=submit]").bind("click", function() {
validNavigation = true;
});
window.addEventListener("beforeunload", function (e) {
if (!validNavigation) {
$.ajax({
url: 'logout.php',
type: 'POST',
async: false,
timeout: 4000
});
}
})
</script>
注销.php
<?php
$username = "root";
$password = "";
$hostname = "localhost";
$dbhandle = mysql_connect($hostname, $username, $password)
or die("Unable to connect to MySQL");
echo "Connected to MySQL<br>";
$selected = mysql_select_db("examples",$dbhandle)
or die("Could not select examples");
$result = mysql_query("DELETE FROM cars WHERE id='1'");
mysql_close($dbhandle);
?>
当浏览器卸载当前文档时,将触发事件"beforeunload"。如果您在同一页面上使用表单,则需要在按下提交时取消设置事件。
例如像这样: window.onbeforeunload=null;
您可以在 OnSubmit 处理程序中执行此操作,如下所示:
<form onsubmit="cancelUnloadAndSubmit()">
Enter name: <input type="text">
<input type="submit">
</form>
像这样包装点击处理程序:
<script type="text/javascript">
var validNavigation = false;
$(document).ready(function() {
$("a").click(function() {
validNavigation = true;
});
});
window.addEventListener("beforeunload", function (e) {
if (!validNavigation) {
// do something...
}
})
</script>