在开始这一章之前,我想先问你一个问题:你的页面在没有 JavaScript 的情况下,还“能看”吗?

对很多前端开发者来说,这个问题可能从来没想过。毕竟现在的前端项目,离开 JavaScript 几乎寸步难行——React、Vue、各种动画库、异步请求……似乎每一行代码都离不开 JS。

但事实是:不是每个用户都能正常执行 JavaScript。

有些用户使用老旧的浏览器,有些用户所在的企业网络会屏蔽某些脚本,有些用户会主动在浏览器设置里禁用 JS 来提升安全性和加载速度。更常见的情况是——你的 JS 文件加载失败了,CDN 挂了,或者代码里有一个语法错误导致后续所有脚本都无法执行。

在这些情况下,用户看到的页面是什么样子?是一个完整的、可读的页面,还是一团乱麻?

禁用 JavaScript 进行测试,就是帮你回答这个问题。

这是一个非常简单的操作——打开 DevTools,在命令菜单里输入几个字母,按回车——但它能帮你发现很多“页面依赖 JS 过深”的问题。这一章我们就来学学怎么快速禁用和重新启用 JavaScript,以及这个功能在什么场景下最有用。

小提示:这一章的内容很短,但价值很大。看完之后,建议你立刻去自己的项目里试一下——看看禁用 JS 之后页面变成了什么样。

一、为什么要禁用 JavaScript?

在学怎么操作之前,先来说说为什么要这么做。

1. 测试页面的“渐进增强”

渐进增强(Progressive Enhancement)是 Web 开发中的一个重要原则:先确保核心内容和基本功能对所有人可用,再在上面叠加增强功能。

换句话说,你的页面应该在没有任何 JavaScript 的情况下也能正常展示核心内容——文字可读、图片可见、链接可点。JS 是用来“增强”体验的,而不是用来“支撑”体验的。

禁用 JS 测试,就是检查你的页面是否做到了这一点。

2. 排查 JS 相关的加载问题

有时候,页面加载出了问题——白屏、卡住、部分内容不显示。你不确定是 JS 报错导致的,还是 CSS 加载失败、或者后端接口挂了。

这时候禁用 JS 可以帮你做“排除法”:如果禁用 JS 之后页面能正常显示了,说明问题出在 JS 上;如果禁用之后仍然有问题,那就要去查其他原因了。

3. 检查 SEO 友好性

搜索引擎的爬虫虽然现在也能执行一部分 JavaScript,但最可靠的还是直接读取 HTML 中的内容。如果你的页面完全依赖 JS 渲染内容(比如用 React 的 client-side rendering),在 SEO 方面可能会有风险。禁用 JS 测试可以帮你模拟搜索引擎最基本的情况。

4. 排查“只有特定用户才遇到的 bug”

有些 bug 只在特定环境下出现——比如用户的浏览器禁用了 JS、或者某个第三方脚本加载失败了。在本地复现这些 bug 往往很困难,禁用 JS 能帮你模拟其中一部分场景。

小建议:不用每次都专门去测禁用 JS 的场景——但建议你在项目上线前、或者在做技术方案设计时,至少跑一次禁用 JS 的测试。花几分钟检查一下,能避免很多“低级但致命”的问题。

二、如何禁用 JavaScript?

禁用 JavaScript 最快捷的方式,是通过 DevTools 的命令菜单来实现。

方法一:通过命令菜单(推荐)

前面第五章我们详细学过命令菜单,现在是时候用上了。

操作步骤:

  1. 打开 Chrome DevTools(按 F12 或 Ctrl/Cmd + Shift + I)

  2. 打开命令菜单:

  • Windows / Linux:按 Ctrl + Shift + P。

  • Mac:按 Command + Shift + P。

  1. 在命令菜单的输入框中,开始输入 javascript。

  2. 在下拉列表中,选择 Disable JavaScript(停用 JavaScript)。

  3. 按回车执行。

就这么简单。执行之后,当前标签页的 JavaScript 会立即被禁用。

注意: 命令菜单支持模糊搜索,你不需要完整输入 Disable JavaScript。输入 dis 或者 javascript,它就会出现在选项里。

方法二:通过设置面板

如果你更喜欢用鼠标操作,也可以通过设置面板来禁用 JavaScript:

  1. 打开 DevTools。

  2. 点击右上角的齿轮图标 ⚙️ 打开  Settings(设置)。

  3. 在左侧菜单中找到  Debugger(调试器) 部分(不同版本的 Chrome 位置可能略有不同)。

  4. 勾选  Disable JavaScript 选项。

不过,这个方法相比命令菜单要慢不少。在日常开发中,命令菜单是更高效的选择。

方法三:通过 Chrome 浏览器设置(全局禁用)

如果你需要全局禁用所有网站的 JavaScript(而不仅仅是当前调试的页面),可以在 Chrome 的浏览器设置中操作:

  1. 在地址栏输入 chrome://settings/content/javascript 后,回车。

  2. 关闭 允许网站使用 JavaScript 的开关。

但这个方法会影响到所有网站,一般不推荐用于日常调试。大部分情况下,用 DevTools 的临时禁用就足够了。

三、如何知道 JavaScript 已被禁用?

禁用 JavaScript 之后,Chrome 会给你几个明确的提示:

  1. 地址栏图标:Chrome 地址栏的右侧会出现一个对应的禁用图标(一个带斜杠的 JS 标志)。

  2. DevTools 警告:在 DevTools 的 Sources(源代码) 面板标签旁边,会出现一个黄色的警告图标 ⚠️。

这两个提示能让你快速确认——当前的 JavaScript 确实已经被禁用了,避免你在调试时产生困惑。

四、如何重新启用 JavaScript?

禁用之后,你肯定需要重新打开。有两种方式:

方法一:通过命令菜单

和禁用的操作完全一样:

  1. 打开命令菜单(Ctrl/Cmd + Shift + P)。

  2. 输入 javascript。

  3. 选择 Enable JavaScript(启用 JavaScript)。

  4. 按回车执行。

方法二:关闭 DevTools

如果你直接关闭 DevTools,JavaScript 会自动重新启用。

不过需要注意的是,关闭 DevTools 之后,页面上原本的 JS 状态不会自动恢复——你需要手动刷新页面,让所有脚本重新加载和执行。

小建议:如果你只是想临时看一眼禁用 JS 的效果,看完之后直接关掉 DevTools 再刷新页面,是最快的恢复方式。

五、实际应用场景

场景一:检查页面的“无 JS 备选方案”

假设你正在开发一个电商网站的详情页。商品标题、价格、描述这些核心信息应该直接在 HTML 中渲染,而不是完全依赖 JS 加载。

禁用 JS 之后刷新页面——如果页面是一片空白,说明你的页面“过于依赖 JS”了。这时候就需要调整架构,让核心内容在服务端渲染,JS 只负责“增强”功能(比如加入购物车的交互)。

场景二:排查“白屏”问题

你的页面突然白屏了。你不确定是 JS 报错导致渲染失败,还是 CSS 加载出了问题。

禁用 JS 之后刷新——如果页面能显示出内容(哪怕样式不太对),说明问题出在 JS 上;如果仍然是白屏,那就要去检查 CSS 或者 HTML 本身了。

场景三:测试第三方脚本的影响

你的页面嵌入了多个第三方脚本(统计、广告、客服聊天等)。有时候某个第三方脚本加载失败,会导致整个页面卡住。

禁用 JS 之后,如果页面恢复了正常,说明问题出在某个第三方脚本上。这时候你就可以逐个排查,找出是哪个脚本在“拖后腿”。

六、常见问题

Q1:禁用 JS 之后,控制台还能执行 JavaScript 吗?

不管使用 chrome://settings/content/javascript 或 命令菜单方式停用 JavaScript, 控制台都不受影响。

Q2:禁用 JS 会影响 DevTools 本身吗?

不会。DevTools 本身是独立于页面运行的,禁用页面 JavaScript 不会影响 DevTools 的正常使用。

Q3:禁用 JS 之后,页面上的内联 <script> 和外链 JS 都会被禁用吗?

是的。无论是内联脚本(写在 HTML 里的 <script> 标签)还是外部脚本(通过 src 引用的 JS 文件),都会被完全禁用。

Q4:禁用 JS 是永久性的吗?

不是。它只影响当前 DevTools 所关联的标签页,而且只在这个 DevTools 实例开启期间有效。关闭标签页或者关闭 DevTools 之后,再打开新页面,JS 默认是启用的。

总结

在这一章中,我们学习了如何在 DevTools 中禁用和重新启用 JavaScript:

  • 为什么要禁用 JS:测试渐进增强、排查加载问题、检查 SEO 友好性。

  • 怎么禁用:通过命令菜单(Ctrl/Cmd + Shift + P → 输入 javascript → 选择 Disable JavaScript)。

  • 怎么知道 JS 已禁用:地址栏图标 + DevTools 的 Sources 面板警告图标。

  • 怎么重新启用:命令菜单执行 Enable JavaScript,或者关闭 DevTools。

禁用 JavaScript 进行测试,是一个“低成本、高回报”的习惯。它花不了你几秒钟,但能帮你发现很多潜在的可用性问题。从今天开始,在你完成一个页面的核心功能后,花 30 秒禁用 JS 刷新一下——看看你的页面在没有 JavaScript 的世界里,是否依然体面。

下一章预告:我们将系统学习 DevTools 的键盘快捷键——从最常用的到最冷门的,帮你把操作速度再提升一个档次。

本章练习

  1. 打开你最近正在开发的一个页面,用命令菜单禁用 JavaScript,然后刷新页面——看看页面变成了什么样子。核心内容还在吗?

  2. 观察禁用 JS 之后,Chrome 地址栏和 DevTools 的 Sources 面板分别出现了什么提示?

  3. 在禁用 JS 的状态下,打开控制台输入 console.log('test')——会发生什么?

  4. 用命令菜单重新启用 JavaScript,然后刷新页面——页面恢复了吗?

  5. 找一个你喜欢的知名网站(比如 GitHub),禁用 JS 之后刷新页面,观察它们的“无 JS 备选方案”是怎么做的——你能从中学到什么?