Chrome调试,js正常运行,但找不到代码,无法调试

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Chrome调试,js正常运行,但找不到代码,无法调试相关的知识,希望对你有一定的参考价值。

1.有网页B.html,在B.html中引用C.js。另有A.html通过jquery的load(B.html")载入B.html,载入后C.js能正常运行,但是在Chrome调试器中找不到C.js,无法调试。如果加debugger显然影响调试效率。这个问题好歹还能调试,虽然麻烦点。
2.如果通过document.write重写html的方法将B.html写入A.html中(整体覆盖),则B.html中原生的js代码(非引入的js文件)能正常运行,但看不到代码,无法调试,即便用debugger,也只能看到程序暂停运行,但停止的地方不是正确的B.html中相应的js代码。
用IE调试倒是能正确显示,但由于页面是按chrome开发,布局什么的都会有问题,不适合用IE调试。现在只能靠alert()调试,效率显然无法接受。

有没有大神知道怎么解决?是不是我Chrome有的地方设置不完善?
针对第1个问题,这个时候已经有个doccontent.js在运行了,却找不到

1、F12打开调试器

2、找到Sources页签

3、找到对应的文件

4、console.log

参考技术A 请问解决了吗? 我也碰到

google chrome调试

1,同样的代码使用firefox运行不会报错,正常运行。

2,同样的代码使用google chrome 有时候会误报网页?

如下:代码可以在 firfox edge正常运行,在chrome  opera 运行报错。应该是兼容性问题。

代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script>
         function BinaryTree(){
            //初始化节点对象,包括3个属性
            var Node=function(key){
                this.key=key;
                this.left=null;
                this.right=null;
            };

            var root=null;//根节点

            //给当前节点添加左右孩子。
            var insertNode = function(node,newNode){
                //如果节点小于父节点,放在左边作为左孩子
                if (newNode.key<node.key) {
                    if (node.left===null) {
                        node.left=newNode;
                    }else{
                        insertNode(node.left,newNode);
                    }
                    //否则就放右边,作为右孩子
                }else{
                    if (node.right===null) {
                        node.right=newNode;
                    }else{
                        //递归,继续添加左右孩子节点。
                        insertNode(node.right,newNode);
                    }
                }
            }

            //判断根节点是否为空。
            this.insert=function(key){
                var newNode=new Node(key);
                if (root===null) {
                    root=newNode;
                }else{
                    //给当前节点添加左右孩子节点。
                    insertNode(root,newNode);
                }
            }
         }

         var nodes=[8,3,10,1,6,14,4,7,13];
         var BinaryTree=new BinaryTree();
         nodes.forEach(function(key){  //控制台,鼠标悬停key未定义,也不会往里面执行代码
            BinaryTree.insert(key);
         });
    </script>
</body>
</html>

====================

逻辑操作符  &&与  ||或  !非
一,&&与
只要有一个条件不成立就返回 false。
只要有一个条件不成立就返回 false。从第一个开始,一旦遇到false,就不会继续往下读取,直接返回当前操作数。

在有一个操作数不是返回布尔值的情况,那么逻辑与操作就不一定返回值。此时遵循以下几个规则:

1,如果第一个操作隐式类型转换后为true,则返回第二个操作数
    var a=10;
    var b=20;
    var c=30;
    var d;
    var name=null;
    var str="abc";
    console.log(a<b && a<c);  /*全部true,返回最后一个true*/
    console.log(str && c);  /*30 */
    /*str="abc" 这里有一个隐式类型转换 Boolean(str)返回值:true。
     Boolean(c)=Boolean(30) 隐式类型转换 返回值:true。返回第二个值,这里的值是30*/

     var a ,b;
     console.log(null && undefined && 0); // 返回0 隐式类型转换全部false,则返回最后一个操作数。
     console.log(a && b); //返回undefined

    console.log( c && 50 && str);  /*abc*/
    /*隐式类型转换,Boolean(c)返回值:true。
    饮食类型转换 Boolean(str) 返回值:true。 如果&&与中全部值返回true,则返回最后一个true对象没有进行隐式类型转换的值*/

2,如果第一个操作数隐式类型转换值为:false。则返回第一个操作数,指的是第一个返回值为:false,如果返回值为:true则跳过。
    var a=10;
    var b=20;
    var c=30;
   console.log(a>c && 88 && a>b); /*返回值:false  这里a>c的返回值就是:false*/
   console.log(a>c && 88 && a>b); /*返回值:false  这里a>c是第一个返回值false的对象*/
   console.log(0 && 88);  /*返回0 ,隐式转换Boolean(0)返回值:false。所以返回值是0。返回第一个false的对象的原值。*/

3,如果有一个操作数null,则返回null。
   console.log("" && 88 && a<b);    /*返回空值,在控制台中就是一个空格*/

4,如果有一个操作数为:undefined,则返回undefined。
    var d;
   console.log(a<c && 88 && d);  /*d  这里的d在上文中没有进行定义赋值,所以返回d*/

5,如果有一个操作数为:NaN,则返回NaN。
    var str="abc";
   console.log( a<c && a+str && 88);  /*88   这里Boolean(a+str)  这里的+变成连字符,所以返回值为:true。所有经过隐式转换返回值都为:true,则值默认返回最后一个原值 88。*/

   console.log( a<c && a*str && 88); /*NaN   Boolean(a*str) a=10 str="abc" 数字和字符串相乘,返回值:NaN非数值*/

6,&&与 可以操作任意类型的数据

以上是关于Chrome调试,js正常运行,但找不到代码,无法调试的主要内容,如果未能解决你的问题,请参考以下文章

在Chrome上面按F12修改页面的源代码里面的JS代码为啥无法生效

在Chrome上面按F12修改页面的源代码里面的JS代码为啥无法生效

google chrome调试

怎么在chrome调试工具直接修改js代码?

在浏览器中调试reducer时,为啥看不到变量的值?

Chrome node.js 的 VS 代码 + 调试器