2

每次用户离开网站时,我都会尝试在服务器上运行 bat。
我通过使用使该部分工作beforeunload,当然每次卸载页面时都会触发它。
因此,当用户单击链接时,我添加了一个标志,这也有效。
现在只有后退/前进和重新加载触发蝙蝠,我不知道如何防止这种情况。

我找到了这个解决方案https://stackoverflow.com/a/36444134/9552448但它并不总是有效。
它仅在页面通过后退/前进或重新加载加载时才有效,但在通过链接加载时无效。

这是我的javascript:

<script language="JavaScript">
    var linkClicked = 0;
    $("a").click(function(){
        linkClicked = 1;
    });
    window.addEventListener('beforeunload', function (e) {
        if (linkClicked == 0) {
            var xhttp = new XMLHttpRequest();
            if (window.performance) {
              console.info("window.performance works fine on this browser");
            }
            if (window.performance.navigation.type == 1) {
                console.info("Used reload");
            }
            else if (window.performance.navigation.type == 2) {
                console.info("Used backward/forward");
            }
            else {
                xhttp.open("GET", "/bat/", true);
                xhttp.send();
            }
        }
    });
</script>

如果您需要更多信息,请告诉我。
任何建议仅在用户离开时才实现运行蝙蝠将不胜感激。
提前感谢您的帮助。

4

0 回答 0