🕵️ F12 侦探学院

网页对你隐藏的一切,都经不起你的放大镜。

9 关闯关式教程,带你玩转 Chrome / Edge 浏览器的 F12 开发者工具。看图学知识、动手玩游戏、答题赚 XP——学习进度自动保存在你自己的浏览器里,随时回来继续。

总进度 0%0 XP
原创插画 · 本站 SVG 绘制
0/9
已读章节
0/27
练习题答对
0/8
游戏通关
0/12
成就徽章

🗺️ 关卡地图 (点卡片进入关卡)

💾 进度工具: 进度保存在浏览器 localStorage(键名 f12-academy-progress),换电脑可用导出文件备份。
第 1 关

🔍 初识 F12 —— 打开网页的"X 光机"

你在浏览器里看到的网页,其实只是"前台表演"。幕后的结构、样式、代码、请求、数据……全都藏在一件神器里:浏览器开发者工具(DevTools)。因为它最经典的打开键是 F12,大家也习惯叫它"F12"。

把它想象成侦探的X 光机 + 放大镜:任何网页(包括本站!)你都能当场透视、当场实验。

📸 先看一眼它长什么样

按 F12 后,浏览器窗口会分成两半——左边还是网页,右边(或下边)就是 DevTools:

ElementsConsoleSources NetworkApplicationPerformance Lighthouse…
> 恭喜!你已经成功打开了 DevTools 🎉
// 顶部一排标签 = 各个"功能房间",本教程会带你一间间逛过去

🔑 三种打开方式

方式操作适合场景
快捷键按 F12 或 Ctrl+Shift+I最常用,一秒打开
右键菜单在网页任意元素上 右键 → 检查想直接定位到你点的那个元素
直达控制台Ctrl+Shift+J只想敲代码/看报错时

💡 Mac 用户把 Ctrl 换成 Cmd 即可。关闭 DevTools:再按一次 F12,或点右上角 ✕。

🆚 Chrome 和 Edge 有区别吗?

现在(Edge 已改用 Chromium 内核后)两家的 DevTools 来自同一套开源代码,界面、面板、快捷键几乎一模一样。少数差异:

  • Edge 多的:3D View(立体查看页面层级)、与 Copilot 的 AI 集成(如让 AI 解释报错)、对 IE 模式页面的调试、更深的 VS Code 集成。
  • Chrome 常领先:最新实验功能通常先在 Chrome 出现,Edge 随后跟进。
  • 结论:学哪个都一样,本站内容两边通用,个别差异会单独标注。

⚠️ 侦探守则(安全须知)

改 anything 都只影响你自己!
  • 你在 DevTools 里的任何修改只存在于你电脑的内存里,刷新就还原,不会影响网站服务器,也不会被别人看到。
  • 别把浏览器里的修改当成"黑掉网站"——那只是给自己看的幻象 😄
  • 也请不要利用 DevTools 做违反法律和网站条款的事。
🧪 动手试试(30 秒)
  1. 就在本页面按 F12(或右键 → 检查)。
  2. 再按一次 F12 关掉它,反复开关找找手感。
  3. 试试 Ctrl+Shift+J,观察它是不是直接停在了 Console。

📎 延伸阅读(资料出处)

✏️ 练习题(第 1 关)

第 2 关

🧩 元素面板 Elements —— 网页的骨架随时改

每个网页都由 HTML 搭骨架、CSS 化妆。Elements 面板就是同时看到这两样东西的地方——而且当场改、当场见效。

🌳 看懂 DOM 树

Elements 里那棵层层嵌套的"树"叫 DOM(文档对象模型)。你可以把它理解成网页的家谱:<html> 是祖宗,<body> 是父辈,标题、段落、按钮都是子孙。

ElementsConsoleNetworkSources
<html>
<body>
<h1 class="title">侦探社营业中</h1>
<p>🔎 这一行被选中啦</p>
<button>委托我吧</button>
</body>
</html>
Styles
p {
}
💡 取消勾选 = 临时删掉这条 CSS,立即看到效果

🛠️ 四个最常用的操作

  1. 精准选中元素:点 DevTools 左上角的箭头图标(或按 Ctrl+Shift+C),再去点网页上的任何东西,DOM 树会自动跳到它。
  2. 改文字:在 DOM 树里双击文字,直接编辑,回车生效。给老板页面改个"祝老板早日发财"试试 🤭(刷新即恢复)。
  3. 改样式:右侧 Styles 面板里,可以改属性值、新增属性、用复选框开关某条 CSS;点 :hov 还能强制触发 :hover 等悬停效果。
  4. 定位与复制:右键元素 → Scroll into view 让网页滚到它;Copy → Copy selector 复制它的"地址",写爬虫/自动化脚本时超好用。
📌 记住这条铁律

Elements 里的修改都是临时的——只改了你浏览器内存里的副本,刷新页面立刻恢复原样,服务器上的真文件毫发无损。想永久生效?第 4 关的 Local Overrides 在等你。

🧪 动手试试
  1. 在本站随便选一句话,右键 → 检查。
  2. 双击改掉它,比如把"侦探"改成"大侦探"。
  3. 按 F5 刷新,见证它恢复原样。

📎 延伸阅读(资料出处)

✏️ 练习题(第 2 关)

第 3 关

💬 控制台 Console —— 和浏览器面对面聊天

Console 是 DevTools 里的对话框:网页会把日志、警告、报错"说"给你听,你也可以输入 JavaScript 让浏览器现场执行。它是排查问题第一现场。

📖 先学会"听"

ElementsConsoleSourcesNetwork
> console.log('线索已记录')
线索已记录
undefined
⚠️ 黄字 = 警告:图片加载慢、废弃 API……要留意但别慌
✖ Uncaught TypeError: Cannot read properties of undefined
at calcTotal (app.js:5) ← 点这里能跳到出错代码!
  • 白字是普通日志,黄字是警告,红字是报错——红字末尾通常有 文件:行号,点它直达案发现场。
  • 点 🚫 图标或按 Ctrl+L 清屏;点漏斗图标可按严重程度过滤。

⌨️ 再学会"说"(执行代码)

光标停在 > 后面时,输入任何 JavaScript 表达式,按 Enter 立即执行(Shift+Enter 换行写多行):

  • 1 + 1 → 回车看结果,恭喜你会 JS 了(bushi)
  • document.title → 看看当前网页的标题
  • 2 ** 10 → 1024,控制台是个免费计算器

🧰 侦探的顺手小工具

工具作用
$0你在 Elements 面板里最近选中的那个元素,可以直接在控制台操作它
$$('p')选中页面上所有 <p> 元素(相当于 querySelectorAll)
console.table(数组)把数据排成漂亮的表格,看数据神器
🧪 动手试试
  1. 按 Ctrl+Shift+J 打开控制台。
  2. 输入 document.title 回车 —— 应该显示本站标题。
  3. 输入 console.table(['🔍','🧩','💬']) 回车,欣赏一下表格。

📎 延伸阅读(资料出处)

✏️ 练习题(第 3 关)

第 4 关

🐞 源代码与断点 Sources —— 让时间暂停的法术

网页出了 Bug,日志看不懂?Sources 面板能让你在代码的任意一行按"暂停键",然后像看慢动作回放一样,逐行观察每个变量发生了什么。这就是专业程序员说的"打断点调试"。

🅿️ 打断点:只需一次点击

  1. Sources 面板 → 左侧找到网页的 JS 文件(Ctrl+P 可以按文件名快速搜索)。
  2. 代码被压缩成一坨时,点左下角 { }(Pretty-print)美化它。
  3. 点击行号,出现蓝色标记 = 断点已埋下。
  4. 刷新页面或触发对应操作,代码执行到这一行就会暂停!
ElementsConsoleSources
4●// ← 蓝色行号:代码执行到这里会暂停
5const total = items.reduce((s, i) => s + i.price, 0);
6return total;
暂停时:右侧 Scope 面板能看到每个变量的当前值;顶部按钮 = 单步执行(见下表)。按 F8 放行继续跑。

🎮 暂停之后的遥控器

按键动作意思
F8继续执行放它跑,直到下一个断点
F10单步跳过 (Step over)执行当前行,不钻进函数内部
F11单步进入 (Step into)钻进函数内部,逐行看
Shift+F11跳出 (Step out)跑完当前函数,回到调用处

💾 彩蛋功能:本地替换 Local Overrides

第 2 关说过 Elements 的修改刷新就没。如果你想让修改刷新后依然生效(只对你自己的浏览器):Sources → Overrides → 点 "Select folder for overrides" 选一个本地文件夹并授权,之后在 Sources 里改文件就会自动保存,刷新、重新打开都生效。调试线上样式、做演示改稿的神器。

顺带一提:Sources → Snippets 可以存放你自己的小脚本,随写随跑,比每次粘贴到控制台方便。

🧪 动手试试
  1. 本页按 F12 → Sources → Ctrl+P 输入 index 打开本站文件。
  2. 随便点一个行号打断点,再刷新页面——代码会停在那一行(本站可能报暂停状态,正常!)。
  3. 按 F8 放行,再取消断点(再点一下行号)。

📎 延伸阅读(资料出处)

✏️ 练习题(第 4 关)

第 5 关

🌐 网络面板 Network —— 网页的每一笔"交易记录"

你每打开一个网页,浏览器都在背后疯狂"购物":HTML 文档、图片、字体、接口数据……Network 面板就是完整的小票:谁、什么时候、买了什么、花了多久。想看"网页背后调用了什么接口",靠的就是它。

🧾 看懂请求列表

NetworkElementsConsoleSources
NameStatusTypeSizeTimeWaterfall
index.html200document18 kB120 ms
style.css200stylesheet6 kB45 ms
api/news200fetch2 kB210 ms
hero.png200image480 kB640 ms
瀑布图越长的条 = 加载越久。蓝色 document / 紫色 css / 绿色 fetch / 橙色 image,一眼定位大头。
  • 状态码:200 成功;304 用了缓存;404 找不到资源;500 服务器出事了。红色行 = 失败请求。
  • 过滤器:点 Fetch/XHR 只看接口请求——找"数据从哪来"时第一动作。
  • 点任意请求 → 右侧/下方出现详情:Headers(请求头、地址)、Payload(发了什么参数)、Preview / Response(返回了什么内容)、Timing(时间都花在哪)。
  • Preserve log:勾选后跳转到新页面记录不丢失;Disable cache:每次都拿最新资源。
  • 限速模拟:把 "No throttling" 换成 Slow 3G,体验手机弱网用户的痛苦。
🕵️ 侦探的拿手好戏

想知道页面上的"今日金价""热搜榜"数据从哪来?打开 Network → 勾 Fetch/XHR → 刷新页面 → 逐个点请求看 Preview,看到眼熟的数字就破案了。这就是接口分析的起点,也是学爬虫前的必修课。

🧪 动手试试
  1. 打开任意新闻网站,按 F12 → Network 面板 → 刷新页面。
  2. 勾选 Fetch/XHR,数一数有几个接口请求。
  3. 点开一个请求,切到 Preview 看看返回的数据长什么样。

📎 延伸阅读(资料出处)

✏️ 练习题(第 5 关)

第 6 关

🗄️ 应用面板 Application —— 网站在你电脑上存了什么

网站会往你的浏览器里"存东西":登录状态、购物车、主题偏好、你迈过多少关卡……这些数据的藏身处和钥匙柜,就是 Application 面板(Safari 里叫 Storage)。

🧭 四大储物柜

储物柜特点典型用途
Local Storage键值对存储,永久保留(除非手动清除)记住主题、教程进度、草稿
Session Storage键值对,关掉标签页就没一次性的表单临时数据
Cookies小体积,每次请求自动随行发给服务器登录凭证、个性化追踪
IndexedDB / Cache Storage大容量数据库 / 缓存仓库离线应用、PWA 缓存资源

🔦 现场实验:本站的进度就藏在这里!

没错——你在 F12 侦探学院的学习进度,就存在 localStorage 里。让我们用它当教材:

ApplicationNetworkElements
Storage
├─ Local Storage
│ └─ file://…/f12-academy
├─ Session Storage
├─ IndexedDB
└─ Cookies
KeyValue
f12-academy-progress{"v":1,"xp":120,"read":{"1":true},…}
左侧点开 Local Storage → 选中本站 → 找到键 f12-academy-progress,双击 Value 甚至能改!

⚠️ 顺便理解了安全知识:任何 JS 脚本(包括恶意网页)都能读同源 localStorage,所以别在 localStorage 里存密码这类敏感信息——Cookie 更适合由服务器加 HttpOnly 保护。

🧪 动手试试
  1. 本页按 F12 → Application → 左侧 Local Storage。
  2. 找到本站,点开 f12-academy-progress 这一项。
  3. 看看你的 XP 数字——这就是你的"档案"。(改坏了就用首页"重置进度"按钮)

📎 延伸阅读(资料出处)

✏️ 练习题(第 6 关)

第 7 关

⚡ 性能分析 & Lighthouse —— 给网站做全身体检

页面卡、加载慢,谁的责任?Performance 面板负责"行车记录仪"式回放,Lighthouse 负责一键体检打分。

🎬 Performance:把卡顿录下来慢放

  1. 点面板里的齿轮/圆点开始录制 → 在页面上复现卡顿操作 → 点 Stop 停止。
  2. 看三样东西:顶部时间线(哪里最忙)、主线程火焰图(哪个函数占了最长条)、底部 Network 行(是不是网太慢)。
  3. 记住一个魔法数字:任务超过 50ms 就是"长任务 (Long Task)",用户就会感觉卡(浏览器理想帧间隔约 16.7ms)。
Main Thread ▲ 50ms 危险线(黄色虚线覆盖的红色长条 = 长任务) JS 24ms 渲染 36ms 18ms ??? ms GC

(这张图只是示意图——第 7 关的小游戏会让你亲手"点击揪凶"。)

🚦 Lighthouse:一键体检报告

Lighthouse 面板 → 选设备 → 点 Analyze page load,几十秒后出一份五维报告:

维度检查什么
Performance 性能加载速度、可交互时间、布局抖动
Accessibility 无障碍图片有没有 alt、对比度够不够、能不能用键盘操作
Best Practices 最佳实践有没有过时 API、HTTPS、控制台报错
SEO 搜索优化meta 描述、标题、链接可抓取性

分数颜色:🟢 90+ 优秀 / 🟠 50-89 及格线上 / 🔴 <50 该抢救了。每一条扣分项都附带改进建议,照着改就行。

🧪 动手试试
  1. 打开你最喜欢(或最怀疑)的网站 → Lighthouse 面板。
  2. 保持默认选项,点 Analyze page load,等待体检。
  3. 找到分数最低的维度,点开看一条建议——你已经会"开体检单"了。

📎 延伸阅读(资料出处)

✏️ 练习题(第 7 关)

第 8 关

📱 设备工具栏 —— 把浏览器变成任何手机

超过一半的人用手机上网,但你的电脑屏幕比手机宽得多——怎么测试手机效果?DevTools 的设备工具栏(Device Toolbar)就是一台"万能手机模拟器"。开关在 DevTools 左上角的 📱 图标,快捷键 Ctrl+Shift+M。

🖥️ 它能模拟什么

能力说明
屏幕尺寸选 iPhone、Pixel 等预设机型,或拖拽边缘自由调整宽度
触摸事件鼠标点击会被当成触屏 tap,hover 变成长按
网络限速模拟 3G/慢速网络,看页面在弱网下的表现
地理位置菜单 ⋮ → More tools → Sensors,可伪造经纬度(测试"附近门店"功能神器)
截图⋮ → Capture full size screenshot,一键导出整页长图
原创插画 · 设备模拟就是给网页套上"手机壳"
📌 一个诚实的提醒

设备工具栏模拟的是尺寸、触屏和网络,但不是真手机芯片——最终上线前,还是建议用真机过一遍。它覆盖了日常 90% 的响应式调试需求。

🧪 动手试试
  1. 按 Ctrl+Shift+M 开启设备工具栏。
  2. 选一款手机机型,再切 "Responsive" 自己拖宽度。
  3. 试试 ⋮ 菜单里的 Capture full size screenshot,收下整页长图。

📎 延伸阅读(资料出处)

✏️ 练习题(第 8 关)

第 9 关 · 终极

🎓 毕业大考 —— 混合卷 + 专属毕业证书

一路走来到这里,你已经掌握了侦探的全部基础装备。最后一张 8 题混合卷,答对 6 题即可毕业,解锁你的专属毕业证书!

🎒 考前速查表(可当小抄,我们不设监考)
  • F12 打开 DevTools;Ctrl+Shift+J 直达控制台;Ctrl+Shift+M 手机模拟;Ctrl+Shift+C 拾取元素
  • 改网页外观 → Elements;看报错/跑代码 → Console;暂停代码找 Bug → Sources
  • 找接口看数据 → Network(勾 Fetch/XHR);看存储/Cookie → Application
  • 卡顿 → Performance(长任务 > 50ms);网站体检 → Lighthouse
  • DevTools 的修改只影响你自己的浏览器,刷新即还原

📝 毕业考试(8 题)

🏆 成就墙

收集徽章的侦探,运气都不会太差。徽章条件达成时自动解锁。

🎖️ 侦探等级(按 XP 晋升)

    📚 参考资料(资料出处汇总)

    本站所有知识点均以下列官方文档为准,欢迎点击原文深入学习。

    🔵 Chrome DevTools 官方文档(Google)

    🟢 Microsoft Edge DevTools 官方文档

    🟣 MDN Web Docs(Mozilla)

    🖼️ 图片与素材出处

    • 本站全部插画(吉祥物、手机、键盘、时间线等)均为内联 SVG 原创绘制,无外部版权风险。
    • DevTools 仿真界面(深色窗口)为本站用 HTML/CSS 手工仿制,仅用于教学示意。
    • 音效由 Web Audio API 实时合成,无外部音频文件。

    🕵️ 关于本站

    🧭 本站教的是什么?

    本站教的是「浏览器开发者工具(DevTools)的使用」,不是 JavaScript 课程。学 F12 会顺带接触 HTML、CSS、JavaScript——Elements 面板对应 HTML/CSS,Console 和断点对应 JavaScript——但你不需要任何编程基础就能开始。

    🌐 Chrome 和 Edge 通用吗?

    通用。Edge 已采用 Chromium 内核,两家 DevTools 出自同一套开源代码,面板与快捷键几乎一致(Edge 额外有 3D View、Copilot AI 集成等小差异,见第 1 关)。本站所有内容两边浏览器都可以照做。

    💾 技术说明

    • 单文件网站:全部代码在这一个 HTML 里,双击即用,无需联网、无需安装。
    • 学习进度用 localStorage 保存,只存在你自己的电脑上,不上传任何数据。
    • 第 2、4 关等处引导你打开"真 F12"来操作本站本身——这是刻意设计:教程即教具。

    🤝 使用建议

    边玩边开一个真浏览器窗口对照操作,学完每一关做完全部练习和游戏再前进——通关率会高很多。祝毕业顺利,未来的网页侦探!🔍