Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用JS离开页面后做些什么_Javascript_Php_Jquery_Frontend - Fatal编程技术网

Javascript 用JS离开页面后做些什么

Javascript 用JS离开页面后做些什么,javascript,php,jquery,frontend,Javascript,Php,Jquery,Frontend,当用户离开我的页面时,我需要做一些后端处理。我的JS代码运行良好: if (window.addEventListener) { // all browsers except IE before version 9 window.addEventListener("beforeunload", OnBeforeUnLoad, false); } else { if (window.attachEvent) { // IE before version 9 w

当用户离开我的页面时,我需要做一些后端处理。我的JS代码运行良好:

if (window.addEventListener) {  // all browsers except IE before version 9
    window.addEventListener("beforeunload", OnBeforeUnLoad, false);
}
else {
    if (window.attachEvent) {   // IE before version 9
        window.attachEvent("onbeforeunload", OnBeforeUnLoad);
    }
}

function OnBeforeUnLoad () {
    return "Are you sure?";
}
但我的
onbeforeuload
函数必须包含一个
$。当用户在浏览器自动提示的对话框中按OK时,ajax
调用可以在服务器端执行某些操作。这样做是行不通的:

function OnBeforeUnLoad () {
   if (confirm("Are you sure?")){
      $.ajax({
         type:       "POST",
         url:        "../wp-content/scripts/removedemo.php",
         data:       "s="+UserSession.encodedurl,
         success: function(data){}
      });
   }
}

任何帮助都将不胜感激。

使用
setimeout
函数将执行延迟几秒钟。以下是您的代码:

setTimeout(OnBeforeUnLoad, 10); 

function OnBeforeUnLoad () {
if (confirm("Are you sure?")){
  $.ajax({
     type:       "POST",
     url:        "../wp-content/scripts/removedemo.php",
     data:       "s="+UserSession.encodedurl,
     success: function(data){}
  });
}
}

重复当用户确认他/她想离开时,我不能做任何事情吗?所以这种对话纯粹是信息,不是吗?我需要删除以前创建的文件夹+文件:\n这样做能实现什么?没有
$的代码。当我离开页面时,ajax
函数不会发出任何提示。你的问题是,你想在重新加载页面之前通过ajax连接到服务器端。它可以工作。但唯一的问题是在一定的延迟后,它会再次显示
确认
框。需要解决这个问题。