Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Chrome评测-如何缩小发生的范围?_Javascript_Google Chrome Devtools - Fatal编程技术网

Javascript Chrome评测-如何缩小发生的范围?

Javascript Chrome评测-如何缩小发生的范围?,javascript,google-chrome-devtools,Javascript,Google Chrome Devtools,场景 我正在对wordpress插件(tagdivcomposer)进行自定义添加。使用tagDiv Composer时,我可以单击页面左侧的元素和检查面板显示。必须有已调度的事件/正在运行的某些代码才能显示面板 问题 使用Chrome开发者工具,我怎样才能准确地看到单击元素后运行的代码 注释 我已记录(分析)单击导致检查窗口打开的元素。我希望对这种情况进行反向工程,以便找到启动流程的事件/代码 以下是我如何“解决”我的问题: 我设置了一个本地测试,并对其进行了分析,以查看到底发生了什么 单击

场景

我正在对wordpress插件(tagdivcomposer)进行自定义添加。使用tagDiv Composer时,我可以单击页面左侧的元素和检查面板显示。必须有已调度的事件/正在运行的某些代码才能显示面板

问题

使用Chrome开发者工具,我怎样才能准确地看到单击元素后运行的代码

注释

我已记录(分析)单击导致检查窗口打开的元素。我希望对这种情况进行反向工程,以便找到启动流程的事件/代码

以下是我如何“解决”我的问题:

我设置了一个本地测试,并对其进行了分析,以查看到底发生了什么

  • 单击“单击此处”文本,将发送一个事件
  • 将听到该事件,并在
    #框
    中添加了类
    绿色
代码

<html>
<head>
  <script>

window.onload = function() {

    var BOX_CLICK = "box click";
  
    document.getElementById("click-here").onclick = function() {
        window.dispatchEvent(new Event(BOX_CLICK));

        console.log("click", this);
    }

    window.addEventListener(BOX_CLICK, function() {
        console.log("listener", this);

        document.getElementById("box").classList.add("green");
    });
}

  </script>
  <style>
    #box {
        width:100px;
        height:100px;
        background-color: black;
    }
    .green {
        background-color: green !important;
    }
  </style>
</head>
<body>
    <p id="click-here">Click Here</p>
    <div id="box"></div>
</body>
</html>

window.onload=函数(){
var BOX\u CLICK=“BOX CLICK”;
document.getElementById(“单击此处”).onclick=function(){
dispatchEvent(新事件(单击框));
console.log(“单击”,此项);
}
window.addEventListener(单击框,函数(){
log(“侦听器”,this);
document.getElementById(“框”).classList.add(“绿色”);
});
}
#盒子{
宽度:100px;
高度:100px;
背景色:黑色;
}
格林先生{
背景色:绿色!重要;
}

单击此处

评测

答复 您可以看到项目
dispatchEvent
,它是事件被调度的时间。在它下面你可以看到
(匿名)
,这就是我的
监听器
代码被触发的地方。使用此模式,我们可以看到堆栈按时间顺序向下移动,新进程按时间顺序从左向右移动


我对颜色代码没有100%的了解,也无法在网上找到太多帮助。

性能配置文件肯定是一种方法,但DevTools还有一种功能,可以让您在事件侦听器启动时暂停。从那里你可以一步一步地浏览代码,一次一行。在这种情况下,您需要启用鼠标类别下的单击复选框,然后单击文本以触发事件侦听器。

关于颜色编码,顶级事件的颜色编码与摘要选项卡相匹配。函数根据其脚本进行颜色编码。每个脚本都指定了一种颜色。每个函数都根据其源脚本进行颜色编码。因此,如果
foo()
bar()
是相同的颜色,则表示它们来自同一脚本。这主要是在中介绍的。我从来没有听说过这个选项,直到你在谷歌devs视频中提到它,它实际上非常有用,我最近一直在使用它,对于这个问题,我认为这绝对是最好的选择。谢谢!供参考的视频是: