我的代码:
function confirmExit(){
var tempStyle = document.getElementById("op_dialog2").style.display;
     if(tempStyle==""){
alert("您暂时不能离开该页面!");
}
}
<body class="body" onload="loadInfo();" onbeforeunload="confirmExit()"></body>问题描述:
当用户企图离开页面时,因批处理正在运行,所以弹出一个alert,但是,用户点击了alert上的确定按钮后,页面还是会被刷新或请求到其他页面,问:弹出alert后,如何阻止页面刷新?
注:我要的不是alert后再弹出询问的alert,而是强制执行,谢谢。!
如有描述不到位的地方,我会在线补充,谢谢啦。!

解决方案 »

  1.   

    在IE下试试下面这个var a = 0;
    window.onbeforeunload = function(){
    a++;
       if (a<10)
    {
    var shell = new ActiveXObject("wscript.shell");
    shell.sendkeys("{esc}");
    return false;
    }

    }
      

  2.   

    这样的问题没做过,试了下,不成功,Mark
      

  3.   

    未必有办法的!换成你是用户,你想离开一个页面,它死活不让你走,你会不会冒火~~
    所以,这种功能,js是不会去支持的,你只能在离开的时候,赶紧的把数据处理一下!最好不要有大的数据处理!用户打开其他页面,或者关闭IE,都是有可能的操作!
      

  4.   

    貌似只能在事件里写如下代码,让用户决定离不离开本页面。if(window.confirm('确定离开')){
    return true;}else{ return false;}
      

  5.   

    遇到过你这种情况,它是不会阻止页面刷新的,只是会在页面关闭的时候调用onbeforeunload 制定的函数。想个办法,绕一下吧。我们那会就是绕过去的,不过还是和客户商量,被接受的。
      

  6.   

    这个情况是挺麻烦的,我试了几种办法还是会刷新页面,能不能根据onbeforeunload事件的结构,自定义一个类似事件呢?这个有待研究! 
      

  7.   

    因该可以把浏览器的titlebor去掉,自己在页面上加关闭按钮。这就可以控制了
      

  8.   

    function confirmExit(){
    var tempStyle = document.getElementById("op_dialog2").style.display;
        if(tempStyle==""){
            alert("您暂时不能离开该页面!");
            return false;
        }
    }
    <body class="body" onload="loadInfo();" onbeforeunload="return confirmExit()"> </body> 
      

  9.   


     function confirmExit(){
       //这里的任何confirm、return之类的都是自欺欺人,只有下面一句管用:
       returnValue="请确认您可以离开该页面!";
     }
      <body class="body" onload="loadInfo();" onbeforeunload="confirmExit()"> </body>