解锁chrome调试黑科技
chrome调试骚操作
- 通用篇(Windows)
切换DevTools窗口的布局(下右)
Ctrl + Shift + D
切换DevTools选项卡 (Element-NetWork-Audits)
Ctrl + [ 或 ]: 向左和向右
Ctrl + 1 到 9:DevTools>Settings>Preferences>Appearance中打开 (开启之后,浏览器网页选项卡也可以切换)
Styles数值调整
- Alt +上下箭头 0.1
- 上下箭头 1
- Shfit+上下箭头 10
- Ctrl +上下箭头 100
elements,logs, sources & network 皆可使用
Ctrl+F
Element中的HTML可以直接
Ctrl+C
保存copy(全局对象或者DOM or 一些太长的对象),可直接复制到编辑器中查看。
1
2
3
4
5
6
7
8// console板块
window
....blabllabla
copy(window)
Ctrl+Vdebugger
- 越过下一个函数调用 : F10、Ctrl + ‘ ;
- 进入下一个函数调用 : F11、Ctrl + ;
- 跳出当前函数 : Shift + F11、Ctrl + Shift + ;
- 切换断点条件: 点击行号、Ctrl + B;
只列举出来我认为很常用的,详见: https://developers.google.com/web/tools/chrome-devtools/shortcuts
- Command篇
打开devtools
, [Ctrl]
+ [Shift]
+ [P]
(Mac: [⌘]
+ [Shift]
+ [P]
) ,会进入这样的界面。
截屏方式
没错,有好几种截屏的方式,但微信截图他不香吗?
不不不,第三方工具只能截满你的屏幕尺寸大小,比如:web长度大于1080,而你要看到所有的element?
选择上图中的: full size 即可。 长图示例预警:
切换主题
当你在晚上工作,讨厌白闪闪的devtools
,Commond输入: theme。
里面还有很多很多功能~ 模块如下:
Snippets
位于
Sources
模块的,很常用的除了page
来看一些err和源码。还有一个snippets
也很实用。1.新建代码块
2.执行(!+代码块序号)
这样就可以输出对应代码块的结果啦。 可以理解为给你开了个沙箱,所以你可以引入其他来源代码块来执行。
测试证明,清cookie ,清缓存,关闭浏览器都不会导致snippets丢失,而且是跨域名全局可用,应该是强存储于浏览器上的 。有点硬~
Date: 2020/2/28
Console
模块篇$
符号1.调试的过程中,你经常会通过打印查看一些变量的值,但如果你想看一下上次执行的结果呢?再输一遍表达式吗?
这时候
$_
就派上了用场,$_
是对上次执行的结果的 引用 :
$
变量在console
中就是对这一大串函数document.querySelector
的别名。$$
变量执行document.QuerySelectorAll
并且它返回的是:一个节点的 数组 ,而不是一个Node list
例如:
Array.from(document.querySelectorAll('div')) === $$('div')
。查找
Node
可比对着Element
看强太多啦!
结合起来就有一个很妙的css调试法~
1 | // Console输入! |
效果如下:
custom formatter
自定义格式转换器
我们习惯使用 DevTools
的 console
默认对 object
的转换(例如上图),但有时候我们想用与众不同的方式来处理。 那我们就可以自定义输出对象的函数 custom formatter
~
具体的官网介绍在这里: https://docs.google.com/document/d/1FTascZXT9cxfetuPRT2eXPQKXui4nWFivUnS_335T3U/preview
开启方法:打开devtools
,按下F1
。勾选如下~
formatter
: 它是一个对象,包含三个方法:
header
: 处理如何展示在console
的日志中的主要部分。hasbody
: 如果你想显示一个用来展开对象的▶
箭头,返回true
body
: 定义将会被显示在展开部分的内容中。
1 | window.devtoolsFormatters = [{ |
其中
header
方法返回了一个 JsonML (注:JsonML
:JSON Markup Language
-JSON
标记语言) 数组,由这些组成:
- 标签名
- 属性对象
- 内容 (文本值或者其他元素)
让我们看看发生了什么:
amazing
现有好几种 custom formatter
可供选择,例如:你可以在这个 immutable-devtools 仓库中找到对于 Immutable.js 结构的完美展示。但你同样可以自己造一个。
如果你遇到结构不寻常的对象时,或大量的日志(最好避免这样的情况,但是有时候很有用)而你想从中做区分时,你可以采用 custom formatter
来处理。
一个很实用的窍门:直接将你不关心,不需要区别对待的对象过滤出来,直接在 header
方法里面 return null
。让 DevTools
使用默认的格式化方式来处理这些值。
让我们来找点乐子,让开让开,我要装逼啦!
1 | window.devtoolsFormatters = [{ |
可以在massage
里面加入一个emoji
表情。当然,**他的实际作用是tag
,可以通过不同的tag
来表示不同的项目,便于区分~