谷歌 DevTools 进阶使用的十个小技巧

2,668 阅读4分钟

小知识,大挑战!本文正在参与「程序员必备小知识」创作活动

本文已参与 「掘力星计划」 ,赢取创作大礼包,挑战创作激励金。

devtools 设置

f12 右上角齿轮

图片.png

图片.png

1、修改主题(黑/白/跟随系统)

2、指定开发面板的语言,好处是方便理解各项菜单,坏处是没有熟悉的味道(指自开发以来都是英文面板)

元素/节点 (element)

在这个选项卡里,主要是对 html 的元素节点、样式、事件做操作

固定元素交互效果

有时候,我们需要调试的样式,是 :hover, :active, :focus 这类需要动态交互才会显示的样式。常规的方式是修改样式后,手动去交互触发,再调试效果,略显麻烦

现在,如图例,右键需要交互的 <a> 节点, 强制执行状态 -> :hover,直接将交互的效果固定下来,我们可以在右侧找到对应的 :hover 样式慢慢调整

图片.png

图片.png

或者,我们换一种方式来固定这个交互效果:

  1. 选中对应的元素
  2. 点击样式调整最上方的工具栏中的 :hov
  3. 勾选对应的触发状态
  4. 在对应的样式里调整

图片.png

为元素添加条件断点

如图示,右键元素,发生中断的条件 -> 3条件任选

图片.png

  1. 子树修改,通过 js dom 操作添加关联了此事件的元素节点下时会触发断点
  2. 属性修改,对关联此事件的元素执行 js 代码 document.getElementById('demo').setAttribute('attr', 'val') 后会触发断点
  3. 移除节点,例如 id="demo" 的元素关联此事件,调用 document.getElementById('demo').remove() 删除此节点会触发断点

注意点:上述的触发事件,都是在 js 变更 dom 后触发,① 如果直接在开发面板中修改 html 是不会触发;② js 的 document.getElementById('demo').value = 1 不会触发属性修改事件;③ 在面板中直接通过右键菜单 删除元素 不会触发移除节点的事件

控制台(console)

切换 iframe 层

控制台的操作作用域,默认都是 top 层,有时候我们调试页面存在嵌套的情况,这时候我们切换到具体的操作的 iframe,就能操作对应的作用域的数据

图片.png

添加实时表达式

点击 👁 弹出输入框,我们输入需要监听的表达式,然后在控制台修改表达式中的属性值,表达式会动态变化。大家可以挖掘出其他更加强大的用法

图片.png

异常级别显示分类

根据自己的需要,让控制台显示哪些数据

image.png

来源(source)

重头戏,这里面的每个二级菜单都有大用途

image.png

网页

页面上使用到了各项资源,例如 js、css、img 等等,都会按照路径,以树形的方式排列显示在这里

image.png

有时,我们调试别人的站点上的 js 代码,可能是压缩过后的,也可能是格式非常的混乱,不便于我们阅读,在打开的 js 文件左下角有个双花括号的按钮,点击后,devtools 会给我们新开一个格式化好后的文件副本以供阅读

image.png

文件系统

根据官方的文档描述,如果是 vue-cli 构建的项目,可以将 vue 项目添加到这个工作区,然后就可以在 devtools 里编辑完源码后,效果自动更新,即 所见即所得

替换

一个非常实用的功能。比如,我们在 生产环境 下,有异常需要处理。我们最常做的方案有两种

① 将生产环境的相关数据备份到本地,再修改、测试

② 直接在本机盲改,检查确认无误后更新到生产环境,运气好的话一把过,运气不好就来回折腾

现在又一个更加优秀的方案,我们直接用本地的文件覆盖生产环境的待修复的文件,在本机进行测试,确认无误后更新到生产环境直接一把过!

  1. 替换 菜单下,添加一个文件夹,这个路径下将会存放调试的副本文件
  2. 添加文件夹的时候,devtools 会弹窗提示,确认即可
  3. 编辑任意文件,然后 ctrl + s 保存的时候,devtools 会自动将副本文件存放到 步骤 ① 创建的目录下

也可以参考下方的 GIF 效果

1.gif

代码块

可以理解为,谷歌浏览器为我们保存一些 js 代码片段。但我们需要时,可以右键对应的代码片段让他运行

image.png


创作不易,期待大家的鼓励❤~

image.png