在窗口卸载时更新mySQL表

时间:2014-06-19 19:46:35

标签: javascript php mysql onunload

当用户离开特定网页时,我需要通过PHP代码更新数据库,最好不要弹出窗口。 下面的代码打开了一个"确认导航"弹出窗口,如果我通过在#34; mypage"上导航并运行代码,请回答"离开此页面"。但是,如果我回复"留在这个页面"它仍会在" mypage"上运行代码,我不想发生这种情况。

<script type="text/javascript">
window.onbeforeunload = CallPHP;
function CallPHP () {
    var a = new XMLHttpRequest();
    a.open("GET","https://mydomain.com/mypage",true);
    a.send();
    return "Thank you.";
}
</script>

我不知道如何直接调用PHP文件,而且我不知道如何避免弹出窗口,只是让用户离开。非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

您可能不想依赖它,因为很多浏览器版本都没有大量支持卸载。除了输出标准警报框之外,有些人甚至不会让你做任何事情。因此,就我所知,你可以做的事情并不多。

我知道,这不是你要找的答案。但我有同样的问题,并尝试了很多。最终我在每次输入时都模糊不清。

答案 1 :(得分:0)

要避免弹出窗口,请不要返回任何内容。如果没有返回任何内容,则不会显示任何弹出窗口,因此您需要做的就是删除该行:

return "Thank you.";

之前提到它不一定可靠,我想补充一点。 Onbeforeunload非常适合暂停离页事件以及在此期间执行代码的选项。问题是如果你摆脱弹出窗口,可能并非所有代码都有时间执行。我从来没有遇到使用短代码的问题,例如注销用户。实际上,你应该没事,但我认为你应该知道可能性。