Chrome开发者工具详解:ElementsConsoleSources面板

Posted 求知的木头

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Chrome开发者工具详解:ElementsConsoleSources面板相关的知识,希望对你有一定的参考价值。

Chrome开发者工具面板

面板上包含了Elements面板、Console面板、Sources面板、Network面板、 Timeline面板、Profiles面板、Application面板、Security面板、Audits面板这些功能面板。

技术分享

这些按钮的功能点如下:

  • Elements:查找网页源代码html中的任一元素,手动修改任一元素的属性和样式且能实时在浏览器里面得到反馈。

  • Console:记录开发者开发过程中的日志信息,且可以作为与JS进行交互的命令行Shell。

  • Sources:断点调试JS。

  • Network:从发起网页页面请求Request后分析HTTP请求后得到的各个请求资源信息(包括状态、资源类型、大小、所用时间等),可以根据这个进行网络性能优化。

  • Timeline:记录并分析在网站的生命周期内所发生的各类事件,以此可以提高网页的运行时间的性能。

  • Profiles:如果你需要Timeline所能提供的更多信息时,可以尝试一下Profiles,比如记录JS CPU执行时间细节、显示JS对象和相关的DOM节点的内存消耗、记录内存的分配细节。

  • Application:记录网站加载的所有资源信息,包括存储数据(Local Storage、Session Storage、IndexedDB、Web SQL、Cookies)、缓存数据、字体、图片、脚本、样式表等。

  • Security:判断当前网页是否安全。

  • Audits:对当前网页进行网络利用情况、网页性能方面的诊断,并给出一些优化建议。比如列出所有没有用到的CSS文件等。注: 这一篇主要讲解前三个面板Elements、Console、Sources

Elements面板

实时编辑DOM节点和CSS样式

  • 双击DOM树视图里面的节点,可以实时编辑标签属性,修改的效果会立刻反应在浏览器里面

技术分享

  • 点击右侧Style面板,可以实时修改CSS的属性值,这里面的所有样式Name和Value都是可以编辑的;在每个属性后面单击可以添加新的样式,如下图:

技术分享

  • 点击右侧Computed面板,可以编辑左侧选中的盒子模型参数,所有的值都是可以修改的;点击不同的位置(topbottomleftright) 就可以修改元素的paddingbordermargin属性值。

技术分享

  • 查看网页的本地修改历史

    • 点击Styles面板中修改过属性的文件名,会跳转到Source面板

    • 在文件位置右击选择Local modifications,可以查看本地的所有修改记录

    • 点击指定的时间点可以看到粉红背景的删除内容和绿色背景的添加内容

技术分享

Console面板

控制台输出日志

通过JS代码或者命令行console.log()console.warn() 和console.error()可以将日志信息输出到控制台

  • console.log 显示一般的基本日志信息,当要显示的基本日志太多时可以使用console.group将相关的日志进行分组

  • console.warn 显示带有黄色小图标的警告信息

  • console.error 显示带有红色小图标红色的错误信息

技术分享

  • console.assert 当第一个参数为false时,才会显示第一个参数的值

技术分享

  • 可以根据JS条件判断输出不同的日志信息注: 当需要换到下一行而不是回车的时候,请按Shift+Enter

    技术分享

控制台交互

  • JS表达式计算

在上一小节,我们已经看到可以在控制台输入JS表达式点击Enter即可得到表达式的值,当你在控制台输入命令时,会弹出相应的智能提示框,你可以用Tab自动完成当前的建议项

  • 选择元素

技术分享

快捷方式描述
$() 返回与指定的CSS选择器相匹配的第一个元素,等同于document.querySelector()
$$() 返回与指定的CSS选择器相匹配的所有元素的数组,等同于document.querySelectorAll()
$x() 返回与指定的XPath相匹配的所有元素的数组

技术分享

注: 我在实际操作过程中发现$()并没有按预期返回相匹配的第一个元素,而是返回了所有匹配的元素数组,我也给Google提供了这个issue,等待Google的答复。

Sources面板

你可以在这个面板里面调试你的JS代码,也可以在工作区打开你的本地文件。

调试JS代码

  • 你可以点击JS代码块前面的数字外来设置断点,如果当前代码是经过压缩的话,可以点击下方的花括号{}来增强可读性,所有的断点都会列出右侧的断点区。

技术分享

  • 设置断点

断点可以在DOM元素节点发生改变时XHR生命周期状态改变时指定的事件执行时被触发

① DOM元素节点发生改变时

Elements面板中指定的DOM节点上右击,在弹出的菜单中选择Break on...,可以看到三个选择项,比如我们选择Subtree modifications, 那么当选择的节点里面的子节点被添加、删除、修改,则断点就会被触发。设置方式如下图:

技术分享

下图是在我的系统里添加指定省市指定医院时由于增加了元素节点而触发的断点,通过单步调试可以看到会弹出一个div对话框供用户添加数据。

技术分享

② XHR生命周期状态改变时

当XHR生命周期状态发生改变或者XHR的URL与Sources面板右侧的XHR Breakpoints栏设置的字符串匹配时,则断点就会有触发。

技术分享

③ 指定的事件执行时

Sources面板右侧的XHR Breakpoints栏下面是Event Listener Breakpoints,列出了各种类型的事件,勾选你要监听的事件, 在指定的事件执行时,断点就会有触发。

技术分享

 

作者:伯乐在线专栏作者 - CharlieChu

链接:http://web.jobbole.com/89079/

以上是关于Chrome开发者工具详解:ElementsConsoleSources面板的主要内容,如果未能解决你的问题,请参考以下文章

Chrome开发者工具详解-Network面板

Google Chrome抓包分析详解

Chrome开发者工具详解:ElementsConsoleSources面板

Chrome开发者工具详解 :ApplicationSecurityAudits面板

Chrome浏览器调试,console详解

chrome F12_Network 开发者工具详解