Chrome DevTools中的这些骚操作,你都知道吗?

引言 🏂

作为开发人员,平时用的最多的就是Chrome devtools了,但是可能很多同学都像我一样平时用的最多也就只是ConsoleElements面板了。

我整理了一些我平时用的比较多的一些调试小技巧,相信对提高你的工作效率能起到不小的帮助!

命令(Command) 菜单 🏈

“命令”菜单是最最常用的,本文也会多次用到,所以这里先说一下打开方式:

Cmd + Shift + P(如果使用Windows,则按Ctrl + Shift + P)打开“命令”菜单。 

截图DOM元素 🏉

当你只想对一个特别的 DOM 节点进行截图时,你可能需要使用其他工具弄半天,但现在你直接选中那个节点,打开 命令(Command) 菜单并且使用 节点截图 就可以了。 

 截取特定节点对应上图命令是Screenshot Capture node screenshot。 

不只是这样,你同样可以用这种方式 实现全屏截图 :通过 Screenshot Capture full size screenshot 命令。

请注意,这里说的是全屏,并不只是页面可视区域,而是包含滚动条在内的所有页面内容。

在控制台中使用上次操作的值 🎃

我是最近才发现这个技巧。使用$_可以引用在控制台执行的前一步操作的返回值。如果您正在控制台调试一些JavaScript代码,并且需要引用先前的返回值,那么这可能非常方便。 

重新发起xhr请求 🚀

在平时和后端联调时,我们用的最多的可能就是Network面板了。但是每次想重新查看一个请求,我们往往都是通过刷新页面、点击按钮等方式去触发xhr请求,这种方式有时显得会比较麻烦,我们可以通过google提供的Replay XHR的方式去发起一条新的请求,这样对于我们开发效率的提升是有所帮助的。 

编辑页面上的任何文本 ✍

在控制台输入document.body.contentEditable="true"或者document.designMode = 'on'就可以实现对网页的编辑了。 

 其实这个还是比较实用的,比如你要测试一个DOM节点文字太长时,样式是否会混乱,或者要去直接修改页面元素去满足一些业务需求时。(我之前是在Elements面板一个一个去修改的,,,)

网络面板(Network)的幻灯片模式 🌇

启动Network 面板下的Capture screenshots就可以在页面加载时捕捉屏幕截图。有点幻灯片的感觉。 

 单击每一帧截图,显示的就是对应时刻发生的网络请求。这种可视化的展现形式会让你更加清楚每一时刻发生的网络请求情况。

动画检查 🎏

DevTools 中有一个动画面板,默认情况下它是关闭的,很多人可能不太清楚这个功能。它可以让你控制和操纵 CSS 动画,并且可视化这些动画是如何工作的。

要打开该面板,可以在 DevTools 右上角菜单 → More tools 中打开 Animations : 

默认情况下,DevTools 会“监听”动画。一旦触发,它们将被添加到列表中。你能看到这些动画块如何显示。在动画本身上,DevTools 会向我们展示哪些属性正在更改,例如 background-color 或 transform

然后,我们可以通过使用鼠标拖动或调整时间轴来修改该动画: 

递增/递减 CSS 属性值 🃏

作为前端开发,平时少不了通过Elements面板去查找元素以及它的css样式。有时调整像素px会比较麻烦一点,这时就可以使用快捷键去帮你完成:


复制代码

* 增量0.1 * Mac: Option +向上和Option +向下 * Windows: Alt +向上和Alt +向下 * 增量1 * Mac:向上+向下 * Windows:向上+向下 * 增量10 * Mac:⇧+向上和⇧+向下 * Windows:⇧+向上和⇧+向下 * 递增100 * Mac: ⌘+向上和⌘+向下 * Windows: Ctrl +向上和Ctrl +向下

在低端设备和弱网情况下进行测试 📱

我们平时开发一般都是在办公室(wifi 网速加快),而且设备一般都是市面上较新的。但是产品的研发和推广,一定要考虑低设备人群和弱网的情况。

Chrome DevTools中可以轻松调节CPU功能和网络速度。这样,我们就可以测试 Web 应用程序性能并进行相应优化。

具体打开方式是:在Chrome DevTools中通过CMD/Ctrl + Shift + p打开命令菜单。然后输入Show Performance打开性能面板。 

copying & saving 📜

在调试的过程中,我们总会有对 Dev Tools 里面的数据进行 复制 或者 保存 的操作,其实他们也是有一些小技巧的!

copy()

可以通过全局的方法 copy() 在 console 里 copy 任何你能拿到的资源 

Store as global variable

如果在console中打印了一堆数据,想对这堆数据做额外的操作,可以将它存储为一个全局变量。只需要右击它,并选择 “Store as global variable”选项。 

 第一次使用的话,它会创建一个名为 temp1 的变量,第二次创建 temp2,第三次 ... 。通过使用这些变量来操作对应的数据,不用再担心影响到他们原来的值。

自定义 devtools 🌈

大家平时用的最多的Chrome 主题可能就是白色/黑色这两种了,但用的久了,难免想尝试像IDE一样切换主题。

打开方式

  • 首先需要启用实验模式中的Allow custom UI themes
    • 地址栏输入如下url
    
    

    复制代码

    chrome://flags/#enable-devtools-experiments # 启用实验功能
    • 启用实验功能,并重启浏览器 

    • 控制台中使用快捷键F1打开设置,切换到Experiments 选项
    • 启用Allow custom UI themes 

  • Chrome商店安装Material DevTools Theme Collection扩展程序 

  • 选择你喜欢的主题即可 

CSS/JS 覆盖率 ✅

Chrome DevTools 中的Coverage功能可以帮助我们查看代码的覆盖率。

打开方式

  • 打开调试面板,用快捷键 shift+command+P (mac)输入 Show Coverage调出相应面板 

  • 点击reload 按钮开始检测 

  • 点击相应文件即可查看具体的覆盖情况(绿色的为用到的代码,红色表示没有用到的代码) 

最后同样用一个动图做下展示: 

自定义代码片段 Snippets 🌰

在平常开发过程中,我们经常有些 JavaScript 的代码想在 Chrome Devtools中调试,直接在 console 下 写比较麻烦,或者我们经常有些代码片段(防抖、节流、获取地址栏参数等)想保存起来,每次打开 Devtools 都能获取到这些代码片段,而不用再去google,正好Chrome Devtool 就提供了这种功能。

如图所示,在 Sources 这个tab栏下,有个 Snippets 标签,在里面可以添加一些常用的代码片段。 

将图片复制为数据 URI 🦊

打开方式

  • 选择Network面板
  • 在资源面板中选择Img
  • 右键单击将其复制为数据URI(已编码为base 64) 

媒体查询 🔭

媒体查询是自适应网页设计的基本部分。在Chrome Devtools中的设备模式下,在三圆点菜单中点击 Show Media queries即可启用: 

 Devtools会在样式表中检测媒体查询,并在顶端标尺中将它们显示为彩色条形: 

 那怎么使用呢?其实也很简单:

  • 点击媒体查询条形,调整视口大小和预览适合目标屏幕大小的样式
  • 右键点击某个条形,查看媒体查询在 CSS 中何处定义并跳到源代码中的定义

keys/values 🎯

这个是Devtools提供的快速查看一个对象的keyvaluesAPI。用起来也很简单: 

你可能会说Object.keys()Object.values()也可以实现啊,但这个不是更简单点吗 🤠

table 🦐

Devtools提供的用于将对象数组记录为表格的API

<think>我们正在讨论的是如何在Chrome DevTools中强制禁用CORS(跨域资源共享)限制。根据用户的问题,他之前已经得到了关于避免跨域预检请求的方法,现在特别关注如何在DevTools中禁用CORS。 注意:用户提供的引用[1]是关于Vue Devtools安装和使用的指南,其中提到了一些安全策略(如禁用开发者模式、CSP等),但并未直接涉及禁用CORS。因此,我们将主要基于已知的浏览器调试技巧来回答。 在Chrome DevTools中,并没有直接提供一个开关来禁用CORS。但是,我们可以通过以下几种方式在本地调试时绕过CORS限制: 1. 使用Chrome命令行启动参数:通过添加特定的命令行参数来启动Chrome,可以禁用Web安全策略,从而绕过CORS。 2. 使用浏览器扩展:安装专门用于禁用CORS的浏览器扩展(但注意扩展的安全性,参考用户提供的引用[1]中关于安全使用扩展的建议)。 3. 修改本地服务器响应头:在本地开发服务器中设置CORS响应头(如Access-Control-Allow-Origin: *),但这不属于在DevTools操作。 鉴于用户特别询问在Chrome DevTools中强制禁用CORS的方法,我们需要澄清:DevTools本身不提供禁用CORS的选项,但我们可以通过DevTools控制台临时关闭CORS(仅适用于某些场景)吗?实际上,控制台也无法直接关闭CORS。 因此,我们只能提供通过命令行启动Chrome的方法,这是最常用的方式。 具体步骤: 步骤1:关闭所有正在运行的Chrome实例。 步骤2:根据你的操作系统,使用命令行启动Chrome并添加参数: 对于Windows: ``` chrome.exe --disable-web-security --user-data-dir="C:\TempChrome" ``` 对于macOS: ``` open -n -a "Google Chrome" --args --disable-web-security --user-data-dir="/tmp/chrome_dev_test" ``` 对于Linux: ``` google-chrome --disable-web-security --user-data-dir="/tmp/chrome_dev_test" ``` 参数说明: - `--disable-web-security`:禁用同源策略,这将允许跨域请求。 - `--user-data-dir`:指定一个单独的临时用户数据目录,这样不会影响你正常的浏览器数据。注意:路径需要存在,如果不存在请先创建。 步骤3:使用这个新打开的Chrome窗口进行调试。在这个窗口内,CORS限制将被禁用。 重要警告: 这种方法只适用于本地开发和调试,绝对不要用于日常浏览,因为它会关闭重要的安全保护。 另外,用户引用的内容中提到了安全使用扩展的建议,如果我们使用扩展来禁用CORS,则需要注意扩展的来源可信。但这里我们并没有推荐具体的扩展,因为使用命令行参数的方式更直接且不需要安装额外扩展。 由于用户特别提到了“DevTools”,我们也可以说明一下:在DevTools中,我们无法直接禁用CORS,但是我们可以利用DevTools的“Local Overrides”功能覆盖服务器响应头,间接解决CORS问题。不过这种方法较为复杂,需要手动添加CORS响应头。 另一种在DevTools操作的方法是:在控制台中发送请求时,使用`fetch`并添加`no-cors`模式,但这只能用于获取不透明的响应(无法读取响应内容),所以通常不是调试的好方法。 因此,我们主要推荐使用命令行参数的方式。 相关问题: 1. 禁用Web安全策略会对浏览器安全造成哪些风险? 2. 除了命令行参数,还有哪些方法可以在本地开发中绕过CORS? 3. 如何在Chrome中创建多个独立的用户配置文件? 4. 如何通过修改响应头来解决CORS问题? 5. 使用`no-cors`模式获取资源有什么限制? 注意:用户之前的问题中已经提到过命令行参数的方法,现在他特别询问在DevTools中的方法,所以我们需要解释清楚在DevTools中没有直接的方法,但可以间接通过覆盖响应头来实现。 下面我们将介绍如何使用DevTools的Local Overrides功能来覆盖响应头: 步骤: 1. 在DevTools中打开Network面板。 2. 找到跨域请求,右键点击该请求,选择“Override headers”(如果没有,可能需要先设置Overrides)。 3. 在Overrides选项卡中,我们可以添加响应头,例如: - Access-Control-Allow-Origin: * - Access-Control-Allow-Methods: GET, POST, PUT, DELETE - Access-Control-Allow-Headers: * 4. 保存后刷新页面,这样浏览器就会使用我们覆盖的响应头,从而绕过CORS限制。 这种方法需要事先设置Overrides,并且只能覆盖我们已经捕获到的请求,但对于调试特定请求非常有用。 总结回答: 我们将提供两种主要方法: 方法一:使用命令行参数启动Chrome(推荐)。 方法二:使用DevTools的Local Overrides功能覆盖响应头(适用于单个请求的调试)。 同时,我们也会提到使用扩展的方法,但提醒用户注意扩展的安全风险。 </think>### 在 Chrome DevTools 中强制禁用 CORS 的方法 在 Chrome DevTools 中无法直接禁用 CORS,但可以通过以下两种关联方法实现跨域调试: #### 方法一:通过 Chrome 启动参数全局禁用 **此方法会影响整个浏览器**: 1. 关闭所有 Chrome 进程 2. 根据操作系统执行对应命令: ```bash # Windows chrome.exe --disable-web-security --user-data-dir="C:\TempChrome" # macOS open -n -a "Google Chrome" --args --disable-web-security --user-data-dir="/tmp/chrome_dev_test" # Linux google-chrome --disable-web-security --user-data-dir="/tmp/chrome_dev_test" ``` 3. 新窗口顶部会显示 `--disable-web-security` 警告 4. 在此窗口中使用 DevTools 调试时将忽略 CORS 限制 > ️ 警告:此模式会禁用所有安全策略,仅限本地调试使用[^1] #### 方法二:通过 DevTools 局部覆盖响应头 **针对单个请求的解决方案**: 1. 打开 DevTools → Network 面板 2. 右键点击目标请求 → Block request URL 3. 切换到 Sources → Overrides → 创建本地覆盖文件夹 4. 创建同名请求文件的响应头覆盖: ```json // 文件名: .headers [ { "applyTo": "*", "headers": [{ "name": "Access-Control-Allow-Origin", "value": "*" }] } ] ``` 5. 刷新页面,被阻止的请求将通过本地覆盖响应头绕过 CORS #### 补充方案:使用 DevTools 扩展 安装 CORS 控制类扩展(需严格审核来源): 1. 搜索 Chrome 商店:`CORS Unblock` 或 `Allow CORS` 2. 安装后通过扩展图标启用 3. 在 DevTools 中验证跨域请求 > 💡 优先推荐启动参数方案,扩展方案需警惕安全风险[^1] ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旭日东升、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值