我希望在用户退出页面之前调用函数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()" />
答案 0 :(得分:5)
您需要分配对函数的引用,而不是调用函数的结果(这是()
的作用)。删除()
:
window.onunload = pageleave();
(您可能还希望使用onbeforeunload
事件而不是onunload
,并返回某种确认消息,以便您的Ajax请求有机会完成。)
答案 1 :(得分:3)
window.onunload=pageleave;
function pageleave() {
$.post("<?php echo dirname( get_bloginfo('stylesheet_url') ); ?>/ajax/videocanle.php", { videoID: "<?php echo $videoID; ?>" } );
}
答案 2 :(得分:2)
您想传递对该函数的引用。在您的示例中,您在赋值语句中调用该函数。试试这个:
window.onunload = function() {
$.post("<?php echo dirname( get_bloginfo('stylesheet_url') ); ?>/ajax/videocanle.php", {
videoID: "<?php echo $videoID; ?>"
});
};