2016-03-08 53 views
0

有点问题。我想在浏览器或标签关闭时执行查询,但是如果该页面中存在任何按钮或链接,并且我点击其中的任何一个,那么查询也会执行。 。需要帮助这仅当浏览器关闭时才执行查询

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); 
?> 
+1

究竟有什么啊你的问题? –

+0

当用户关闭浏览器时,我想执行删除查询。使用onbeforeload函数我可以实现它,但问题是查询执行时,我按下按钮或单击链接。我只想在浏览器关闭时执行查询 –

+0

http://stackoverflow.com/questions/1631959/how-to-capture-the-browser-window-close-event –

回答

0

事件 “beforeunload” 的时候,浏览器卸载当前文档被触发。如果您在同一页面上使用表单,则需要在按下提交时取消设置该事件。

例如像这样:

<form onsubmit="cancelUnloadAndSubmit()"> 
    Enter name: <input type="text"> 
    <input type="submit"> 
</form> 
0

包住单击处理像这样: window.onbeforeunload=null;

可以在onsubmit处理这样做

<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> 
相关问题