zoukankan      html  css  js  c++  java
  • jQuery加载完成事件 $(function(){ })的全局异常拦截

    通常我们在页面加载完成的时候要写入一些功能脚本,如:

    $(function(){/*脚本 - 1*/
      console.log('start');
    })
    $(function(){/*脚本 - 2*/
      throw new Error(123);
    })
    $(function(){/*脚本 - 3*/
      console.log('end');
    })

    但运行到‘脚本 - 2’时程序会被中断,导致后续脚本无法执行,在项目中这往往不是我们想要的;有异常发生时,我们可以捕获并打印,但脚本依然进行执行,改造如下:

    $.extend(jQuery.fn, {// 重写ready方法,截获异常
      ready: function(fn) {
        // Add the callback
        var fun = function(){
          try {
            fn.apply(this,arguments);
          } catch (e) { console.trace(e); }
        }
        jQuery.ready.promise().done(fun);
    
        return this;
      }
    });
    $(
    function(){ console.log('start'); }) $(function(){ throw new Error(123); }) $(function(){ console.log('end'); })

    chrome的测试结果:

  • 相关阅读:
    C#学习笔记
    Visual Studio 快捷键
    java 8 中lambda表达式学习
    Spfa算法
    dijkstra算法
    topSort
    并查集--学习详解
    trie树--详解
    POJ1988 并查集的使用
    Mybatis的一级缓存和二级缓存
  • 原文地址:https://www.cnblogs.com/xtreme/p/8617648.html
Copyright © 2011-2022 走看看