Chrome调试技巧

332 阅读3分钟

写在前面:纯个人记录用,可以直接跳转到免费学习地址

复制、保存

复制 - copy

  • 通过这个可以复制一些对象、数组等
copy("这里是复制的内容")

存储全局变量

  • 如果我在代码中console一个数据,我没有办法直接对这个数据进行操作。但是可以通过把这个数据保存为tempX后再操作

11.awebp

  • 像上面这样,就可以操作temp1

快捷键

切换调试窗口布局

  • ctrl +shift + D/ ⌘ + shift + D
  • 可以快速调试框最近两次位置之间切换

22.awebp

切换 DevTools面板

  • ctrl + [/ ctrl + ]:实现左右之间切换(如:Elements -> Console)
  • ctrl + 【1 - 9】:实现快速跳转。但是这个是默认关闭,打开在 Settings -> Preferences -> Enable Ctrl 1-9 shortcut to switch panels

33.awebp

使用 Command

  • 首先打开Command的方式: Ctrl + Shift + P/⌘ + Shift + P
  • 或者dropdown下的run command

44.awebp

截屏

  • 关键词:screen
  • Capture node screenshot:对应Elements中选择的节点的截屏
  • Capture full screenshot:全屏截图

切换面板

  • Elements中是元素面板 + 资源面板
  • 关键词:layout

代码块

定义代码块

  • DevTool -> Source -> Snippets中新建、运行代码块

55.awebp

代码块代码快速运行

Ctrl + P 后输入!执行对应的代码块

66.awebp

Console中的$

小册中有几个用法,我这里主要记录$i安装npm插件

  • 安装Console Importer可以在Console中快速安装、调试npm插件
  • $i("lodash")的方式安装npm插件

77

异步的Console

  • 直接使用await,因为Console默认被async包裹

条件断点

Source中打断点,如果每次都停下来,会非常痛苦,我只希望在满足一定条件的情况下断点停止

  • 右击行号 Add conditional breakpoint...
  • 右击一个已经设置的断点并且选择 Edit breakpoint

88.awebp

monitorEvents监听事件

在此之前,我想为一个div添加事件监听,往往通过getElement + addEventListener的方式,用monitorEvent会大大提高效率。但是不能操作事件参数

99.awebp

console打印

console.table

打印出表格

111.awebp

console.dir

如果想打印一个dom元素,只能看到元素,不能看到具体的js对象,就可以使用dir

222.awebp

打印信息前面添加时间戳

  • Ctrl + Shift + P打开运行命令框后,输入timestamps(中文的输入:时间),选择显示时间戳

333.awebp

检测执行时间

  • console.time()console.timeEnd()
  • 如果有多个,可以在函数中加入参数console.time("1")console.timeEnd(1)

Network

Request initiator 显示了调用堆栈信息

可以查看当前这个请求调用栈、从哪里发送的

444.awebp

重新发送请求

右击请求,选择Replay XHR

555.awebp

XHR/fetch断点

发送请求时,断点停止,可以通过Source中的XHR/fetch breakpoint加入请求url来实现

666.awebp

元素面板技巧

shadow 编辑器

777.awebp

插入样式

{}中右下角的+

888.awebp

DOM断点

记录DOM节点什么时候添加、修改、修改的哪些部分

  • subtree modification:监听当前dom节点内部任何元素被添加/删除事件
  • attribute modification:监听任何当前节点被添加移除修改属性值的事件
  • node removal:当前元素被移除的事件 打断点方式:
  • 右击元素 -> break up

注:

  • 刷新页面断点还在

Drawer

除了上面Tab,还可以通过点击ESC来控制,显示和隐藏Drawer

Drawer有什么

999.awebp

  • Animations:动画
  • Changes:比较代码修改的内容(对我来说不常用)
  • Console
  • Coverage:检查代码,可以看到所有引用的文件,代码使用率
  • Network conditions:模拟网络状态,在network这个tab中也可以调整
  • Performance monitor
  • Quick source:和Source一样,可以在其他Tab中找到source(如在Elements这个Tab中)
  • Remote devices
  • Rendering
  • Request blocking
  • Search
  • Sensors:控制传感器,可以输入模拟位置
  • What’s new

学习地址