用户离开页面时调用JavaScript函数

Tho*_*ole 0 javascript

我希望在pageleave()用户退出页面之前调用该函数.但我似乎无法让它正常工作,我在网上搜索了几个小时,无法找到解决方案.这是我想出的代码.它在页面加载时运行,而不是在页面卸载时运行.

window.onbeforeunload = pageleave;

        function pageleave() {
            $.post("<?php echo dirname( get_bloginfo('stylesheet_url') ); ?>/ajax/videocanle.php", { videoID: "<?php echo $videoID; ?>" },
                function(data) {
                    if ( data != "\nsuccess"){
                        alert ("Sorry but there was an unexpected error, please try again");
                    }

                });

        }
Run Code Online (Sandbox Code Playgroud)

这是当前的修订版,它仍然不会在页面卸载之前运行该函数.该功能确实有效,我用一个简单的输入按钮测试它.

<input type="button" value="test function" onclick="pageleave()" />
Run Code Online (Sandbox Code Playgroud)

Ry-*_*Ry- 5

您需要为函数分配一个引用,而不是调用函数的结果(这就是它的()作用).删除():

window.onunload = pageleave();
Run Code Online (Sandbox Code Playgroud)

(您可能还希望使用该onbeforeunload事件而不是onunload,并返回某种确认消息,以便您的Ajax请求有机会完成.)