有个小问题。当浏览器或选项卡关闭时,我希望执行查询,但是如果该页面中存在任何按钮或链接,并且单击其中任何一个按钮或链接,则查询也会执行。。在这方面需要帮助
First.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>logout.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);
?>发布于 2016-03-08 10:02:19
浏览器卸载当前文档时触发事件“先卸载”。如果在同一页上使用窗体,则需要在按下提交时取消设置事件。
例如:window.onbeforeunload=null;
您可以在onsubmit处理程序中这样做:
<form onsubmit="cancelUnloadAndSubmit()">
Enter name: <input type="text">
<input type="submit">
</form>发布于 2016-03-08 10:03:39
将单击处理程序包装如下:
<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>https://stackoverflow.com/questions/35863975
复制相似问题