刚才了解到Chrome和Opera是不支持onunload的,但是之后突然想起来这个网站在Chrome上是有关闭提示的:
http://www.compileonline.com/compile_cpp11_online.php(加载时间相对来说有点长)
但是这个网站的关闭提示只在Chrome和Firefox上是有效的,IE9,Opera都是无效的。但是我已经决定不兼容IE了,兼容IE对我来说就是个噩梦。鉴于Opera那么点可怜的市场占有率我也不想兼容Opera了。这个网站上的代码太多了,我的技术又很烂,所以看不出哪部分是实现关闭提示的。所以请高手将关闭提示的那部分提取出来。另外这个方法能执行AJAX么?我想执行的是就算没有执行也不会造成很严重的后果的AJAX。
如果有兼容全部浏览器的方法也可以,但是最好不是通过判断客户端浏览器执行不同代码的方法。

解决方案 »

  1.   

    源代码第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!";
       };
    }
      

  2.   

    源代码第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!";
       };
    }
    你试过了?我是在本地运行的根本就不好使。
      

  3.   

     //禁止用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);
      

  4.   

    那个方法chrome倒是可以  但是opera仿佛不支持
      

  5.   

    怎么才能不弹出提示框?我只想发送个AJAX而已。
      

  6.   

    我把这三行
    b = b || window.event;
    b.returnValue = a;
    return a
    换成调用发送AJAX的函数的语句了,就不弹出窗口了。其他的东西还能删么?试着删了几个东西,删掉之后就没有效果了。
      

  7.   

    这个用的是什么原理?难道是BUG?这里面用的几个对象和方法网上根本就搜不到。
      

  8.   

    AJAX 就不会弹出提示。刷新页面就会有提示。
      

  9.   

    6楼的代码无法保证每次AJAX都能成功执行,而且无法成功执行的概率很大。而且有时候成功率很大,有时候很小,但是基本找不出规律。