• 如何让JQuery报错-遁地龙卷风


    0.解决的问题

    a.当选择器语法没有问题,找不到元素时,让jquery报错

    b.选择器语法有问题,程序无法继续执行时,让jquery报错

    主要针对传递字符串,尝试前请备份jquery库,最好改变名字加已区分.

    1.环境配置

    jquery-3.0.0.js未压缩版

    2.选择器语法没有问题,找不到元素

    修改jquery源码增加代码,以下是修改后的代码,加红的是增加部分

    var
        version = "3.0.0",
    
        // Define a local copy of jQuery
        jQuery = function( selector, context ) {
    
            
            // The jQuery object is actually just the init constructor 'enhanced'
            // Need init if jQuery is called (just allow error to be thrown if not included)
            if(typeof window["[]"] == "undefined")
            {
                window["[]"] = [];
                window["[]"]["selector"] = selector;
                window["[]"]["current"] = 0;
                
            }
            else
            {
                window["[]"]["current"] ++;
            }
            var c = new jQuery.fn.init( selector, context ) 
            if(window["[]"]["current"]--  == 0)
            {
                
                if(c.length == 0)
                {
                    
                    window.console.error(window["[]"]["selector"] +"找不到");
                }
                delete window["[]"];
            }
            return c;
        },

    3.选择器语法有问题,导致程序无法继续执行

    代码举例

    $(function()

      var lol = $("li:");
      alert(lol.length);
    });


    在上个问题增加的代码的基础上,向jquery源码增加代码,以下是修改后的代码,红色是增加部分

     
    process = special ?
                                        mightThrow :
                                        function() {
                                            try {
                                                mightThrow();
                                            } catch ( e ) {
                                                
                                                if ( jQuery.Deferred.exceptionHook ) {
                                                    jQuery.Deferred.exceptionHook( e,
                                                        process.stackTrace );
                                                }
    
                                                // Support: Promises/A+ section 2.3.3.3.4.1
                                                // https://promisesaplus.com/#point-61
                                                // Ignore post-resolution exceptions
                                                if ( depth + 1 >= maxDepth ) {
    
                                                    // Only substitute handlers pass on context
                                                    // and multiple values (non-spec behavior)
                                                    if ( handler !== Thrower ) {
                                                        that = undefined;
                                                        args = [ e ];
                                                    }
    
                                                    deferred.rejectWith( that, args );
                                                }
                                                if(typeof window["[]"]!="undefined")
                                                {
                                                    
                                                    if(window["[]"]["current"] == 0)
                                                    {
                                                        window.console.error(window["[]"]["selector"]+"使程序无法向下执行");    
                                                    }
                                                }
                                            }
                                            
                                        };
    至于程序无法向下执行的原因,我也无法给出肯定的回答,JavaScript的函数调用总是会返回内容,我使用debug工具查找时,走到这个函数的末尾就不走了,怎么说呢,有缘再会吧!
    找到原因了var lol = $("li:");报错了,导致程序的终止
    try
    {
      
      var lol = $("li:");

    }
    catch(e)
    {
      alert(e);
    }
     
     
    无论在哪里出生的孩子,都能看到整个世界
  • 相关阅读:
    Windows Mobile自动更新
    【实用代码片段】将json数据绑定到html元素 (转)
    B/S打印解决方案参考
    python基础之1-安装
    python里的生成器
    python中的函数的执行分类
    python中的return的返回与执行
    自创最精简的python装饰器
    python中的lambda函数用法
    python中的str.strip()的用法
  • 原文地址:https://www.cnblogs.com/resolvent/p/5782009.html
Copyright © 2020-2023  润新知