0

我希望在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");
                    }

                });

        }

那是当前版本,在页面卸载之前它仍然没有运行该功能。该功能确实有效,我用一个简单的输入按钮对其进行了测试。

<input type="button" value="test function" onclick="pageleave()" />
4

4 回答 4

5

您需要分配对函数的引用,而不是调用函数的结果(这就是函数的()作用)。删除()

window.onunload = pageleave();

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

于 2012-06-21T01:07:47.117 回答
3
window.onunload=pageleave;

        function pageleave() {
            $.post("<?php echo dirname( get_bloginfo('stylesheet_url') ); ?>/ajax/videocanle.php", { videoID: "<?php echo $videoID; ?>" } );    
        }
于 2012-06-21T01:07:56.013 回答
2

您想传递对该函数的引用。在您的示例中,您在赋值语句中调用了该函数。尝试这个:

window.onunload = function() {
  $.post("<?php echo dirname( get_bloginfo('stylesheet_url') ); ?>/ajax/videocanle.php", { 
    videoID: "<?php echo $videoID; ?>"
  });    
};
于 2012-06-21T01:11:06.250 回答
0

尝试这个:

window.onbeforeunload = function()  {
  $.post("<?php echo dirname( get_bloginfo('stylesheet_url') ); ?>/ajax/videocanle.php", { 
    videoID: "<?php echo $videoID; ?>"
  });    
};
于 2022-03-02T18:28:50.943 回答