日期:2014-05-16  浏览次数:20458 次

这个页面是怎么做到Chrome的关闭提示的?
刚才了解到Chrome和Opera是不支持onunload的,但是之后突然想起来这个网站在Chrome上是有关闭提示的:
http://www.compileonline.com/compile_cpp11_online.php(加载时间相对来说有点长)
但是这个网站的关闭提示只在Chrome和Firefox上是有效的,IE9,Opera都是无效的。但是我已经决定不兼容IE了,兼容IE对我来说就是个噩梦。鉴于Opera那么点可怜的市场占有率我也不想兼容Opera了。

这个网站上的代码太多了,我的技术又很烂,所以看不出哪部分是实现关闭提示的。所以请高手将关闭提示的那部分提取出来。另外这个方法能执行AJAX么?我想执行的是就算没有执行也不会造成很严重的后果的AJAX。
如果有兼容全部浏览器的方法也可以,但是最好不是通过判断客户端浏览器执行不同代码的方法。

------解决方案--------------------
引用:
刚才了解到Chrome和Opera是不支持onunload的,但是之后突然想起来这个网站在Chrome上是有关闭提示的:
http://www.compileonline.com/compile_cpp11_online.php(加载时间相对来说有点长)
但是这个网站的关闭提示只在Chrome和Firefox上是有效的,IE9,Opera都是无效的。但是我已经决定不兼容IE了,兼容IE对我来说就是个噩梦。鉴于Opera那么点可怜的市场占有率我也不想兼容Opera了。

这个网站上的代码太多了,我的技术又很烂,所以看不出哪部分是实现关闭提示的。所以请高手将关闭提示的那部分提取出来。另外这个方法能执行AJAX么?我想执行的是就算没有执行也不会造成很严重的后果的AJAX。
如果有兼容全部浏览器的方法也可以,但是最好不是通过判断客户端浏览器执行不同代码的方法。

源代码第41行开始

if ( $.browser.msie ) {
/*
   window.onbeforeunload = function(e){
    var tabClick = false;
    $('#tt').tabs({
        onSelect:function(title,index){
           tabClick = true;
           return true;
        }
    });
    if( !tabClick ){
      return "Leaving this page may cause loss of your code!";
    }
   };
*/
}else{
   window.onbeforeunload = function(){
      return "Leaving this page may cause loss of your code!";
   };
}

------解决方案--------------------


 //禁止用F5键    
var UnloadConfirm = {};
UnloadConfirm.MSG_UNLOAD = "数据尚未保存,离开后可能会导致数据丢失\n\n您确定要离开吗?";
UnloadConfirm.set = function(a) {
    window.onbeforeunload = function(b) {
        b = b 
------解决方案--------------------
 window.event;
        b.returnValue = a;
        return a
    }
};
UnloadConfirm.clear = function() {
    fckDraft.delDraftById();
    window.onbeforeunload = function() {}
};
UnloadConfirm.set(UnloadConfirm.MSG_UNLOAD);