前端开发必备之Chrome开发者工具(一)
本文介绍的 Chrome 开发者工具基于 Chrome 65版本,如果你的 Chrome 开发者工具没有下文提到的那些内容,请检查下 Chrome 的版本
简介
Chrome 开发者工具是一套内置于 Google Chrome 中的Web开发和调试工具,可用来对网站进行迭代、调试和分析
打开 Chrome 开发者工具的方式有:
在Chrome菜单中选择 更多工具 > 开发者工具
在页面元素上右键点击,选择 “检查”
使用 快捷键 Ctrl+Shift+I (Windows) 或 Cmd+Opt+I (Mac)。更多快捷键https://developers.google.com/web/tools/chrome-devtools/shortcuts
Chrome 开发者工具主要包含以下10个部分:
- 设备模式(device toolbar)
- 元素面板(Elements)
- 控制台面板(Console)
- 源代码面板(Sources)
- 网络面板(Network)
- 性能面板(Performance)
- 内存面板(Memory)
- 应用面板(Application)
- 安全面板(Security)
- 主菜单(Customize and control DevTools)
设备模式(device toolbar)
使用 Chrome DevTools 的 Device Mode 打造移动设备优先的完全自适应式网站
该模式不可替代真实设备测试
切换 Device Mode 按钮可以打开或关闭 Device Mode
选择设备
通过该视图控件,你可以设定下面两种模式:
- 自适应。 使视口可以通过任意一侧的大手柄随意调整大小
- 特定设备。 将视口锁定为特定设备确切的视口大小,并模拟特定设备特性
媒体查询
媒体查询是自适应网页设计的基本部分。要查看媒体查询检查器,请在三圆点菜单中点击 Show Media queries。DevTools会在样式表中检测媒体查询,并在顶端标尺中将它们显示为彩色条形
用彩色标记的媒体查询示例如下:
快速预览媒体查询
点击媒体查询条形,调整视口大小和预览适合目标屏幕大小的样式
查看关联的 CSS
右键点击某个条形,查看媒体查询在 CSS 中何处定义并跳到源代码中的定义
元素面板(Elements)
使用元素面板可以自由的操作DOM和CSS来迭代布局和设计页面
编辑样式
使用 Styles 窗格可以修改与元素关联的 CSS 样式
添加、启用和停用 CSS 类
点击 .cls 按钮可以查看与当前选定元素关联的所有 CSS 类。 从这里,您可以执行以下操作:
- 启用或停用当前与元素关联的类
- 向元素添加新类
添加或移除动态样式(伪类)
您可以在元素上手动设置动态伪类选择器(例如 :active、:focus、:hover 和 :visited)
可以通过两种方式在元素上设置动态状态:
- 在 Elements 面板内右键点击某个元素,然后从菜单中选择目标伪类,将其启用或停用
- 在 Elements 面板中选择元素,然后在 Styles 窗格中点击 :hov 按钮,使用复选框启用或停用当前选定元素的选择器
快速向样式规则添加背景色或颜色
Styles 窗格提供了一个用于向样式规则快速添加 text-shadow、box-shadow、color 和 background-color 声明的快捷方式
样式规则的右下角有一个由三个点组成的图标。您需要将鼠标悬停到样式规则上才能看到这个图标
将鼠标悬停到此图标上可以调出添加 text-shadow、box-shadow、color 和 background-color 声明的快捷方式。
使用 Color Picker 修改颜色
要打开 Color Picker,请在 Styles 窗格中查找一个定义颜色的 CSS 声明(例如 color: blue)。 声明值的左侧有一个带颜色的小正方形。 正方形的颜色与声明值匹配。 点击小正方形可以打开 Color Picker
您可以通过多种方式与 Color Picker 交互:
- 取色器。 通过鼠标悬停到某种颜色上去获取颜色值。
- 当前颜色。 当前值的可视表示。
- 当前值。 当前颜色的十六进制、RGBA 或 HSL 表示。
- 调色板。 当前生成的几组颜色。
- 着色和阴影选择器。
- 色调选择器。
- 不透明度选择器。
- 颜色值选择器。 点击可以在 RGBA、HSL 和十六进制之间切换。
- 调色板选择器。 点击可以选择不同的模板。
编辑 DOM
Elements 面板中的 DOM 树视图可以显示当前网页的 DOM 结构。通过 DOM 更新实时修改页面的内容和结构
隐藏 DOM
两种方式:
- 右键选择某个元素,然后选择 Hide element
- 选中某个元素,然后使用快捷键 H
设置 DOM 断点
设置 DOM 断点以调试复杂的 JavaScript 应用。例如,如果您的 JavaScript 正在更改 DOM 元素的样式,请将 DOM 断点设置为在元素属性修改时触发。在发生以下一种 DOM 更改时触发断点:子树更改、属性更改、节点移除
子树修改
设置子树修改断点:右键选择某个元素,然后选择 Break on --> subtree modifications
添加、移除或移动子元素时将触发子树修改断点。例如,如果您在 main-content 元素上设置子树修改,以下代码将触发断点:
var element = document.getElementById('main-content');
//modify the element's subtree.
var mySpan = document.createElement('span');
element.appendChild( mySpan );
属性修改
设置属性修改断点:右键选择某个元素,然后选择 Break on --> attribute modifications
动态更改元素的属性 (class, id, name) 时将发生属性修改:
var element = document.getElementById('main-content');
// class attribute of element has been modified.
element.className = 'active';
节点移除
设置节点移除断点:右键选择某个元素,然后选择 Break on --> node removal
从 DOM 中移除有问题的节点时将触发节点移除修改:
document.getElementById('main-content').remove();
查看元素事件侦听器
在 Event Listeners 窗格中查看与 DOM 节点关联的 JavaScript 事件侦听器
启用 Ancestors 复选框时查看祖先实体事件侦听器,即除了当前选定节点的事件侦听器外,还会显示其祖先实体的事件侦听器
启用 Framework listeners 复选框时查看框架侦听器,DevTools 会自动解析事件代码的框架或内容库封装部分,然后告诉您实际将事件绑定到代码中的位置
控制台面板(Console)
在开发期间,可以使用控制台面板记录诊断信息,或者使用它作为 shell 在页面上与 JavaScript 交互
消息堆叠
如果一条消息连续重复,而不是在新行上输出每一个消息实例,控制台将“堆叠”消息并在左侧外边距显示一个数字。此数字表示该消息已重复的次数
如果您倾向于为每一个日志使用一个独特的行条目,请在 DevTools 设置中启用 Show timestamps
由于每一条消息的时间戳均不同,因此,每一条消息都将显示在各自的行上
选择执行环境
以下屏幕截图中以蓝色突出显示的下拉菜单称为 Execution Context Selector
通常,您会看到此环境设置为 top(页面的顶部框架)。
其他框架和扩展程序在其自身的环境中运行。要使用这些其他环境,您需要从下拉菜单中选中它们。 例如,如果您要查看 <iframe> 元素的日志输出,并修改该环境中存在的某个变量,您需要从 Execution Context Selector 下拉菜单中选中该元素。
控制台默认设置为 top 环境,除非您通过检查其他环境中的某个元素来访问 DevTools。 例如,如果您检查 <iframe> 中的一个 <p> 元素,那么,DevTools 将 Execution Context Selector 设置为该 <iframe> 的环境。
当您在 top 以外的环境中操作时,DevTools 将 Execution Context Selector 突出显示为红色,如下面的屏幕截图中所示。 这是因为开发者很少需要在 top 以外的任意环境中操作。 输入一个变量,期待返回一个值,只是为了查看该变量是否为 undefined(因为该变量是在不同环境中定义的),这会非常令人困惑
源代码面板(Sources)
在源代码面板中设置断点来调试 JavaScript ,或者通过Workspaces(工作区)连接本地文件来使用开发者工具的实时编辑器
格式化混淆代码
在某些情况下,我们需要对混淆的代码做一定的调试,但这是我们看到的代码是乱成一团,毫无格式可言:
那我们可以点击下方的格式化按钮对代码进行格式化:
断点调试
代码行断点
当我们知道需要调试的代码的确切位置的时候,使用代码行断点
DevTools 设置代码行断点:
- 点击 Sources 选项卡。
- 打开包含您想要调试的代码行的文件。
- 找到该代码行。
- 点击左边的行号,这样一个蓝色图标就显示在行号上,表明该代码行设置好断点了。
当然你也可以在代码中使用 debugger 来设置代码行断点,效果和在 DevTools 中设置是一样的:
console.log('a');
console.log('b');
debugger;
console.log('c');
条件代码行断点
当我们知道需要调试的代码的确切位置且在满足条件下才调试的时候,使用条件代码行断点
设置条件的代码行断点:
- 点击 Sources 选项卡。
- 打开包含您想要调试的代码行的文件。
- 找到该代码行。
- 右键点击左边的行号。
- 选择添加条件断点。代码行下面会显示一个对话框。
- 在对话框中输入你的条件。
- 按Enter激活断点。行号上出现橙色图标。
DOM更改断点
当您想要更改DOM节点或其子节点的代码时,使用DOM更改断点
设置DOM更改断点:
- 切换到 Elements 面板。
- 找到您想设置断点的元素并右键单击该元素。
- 将鼠标悬停在 Break on 上,然后选择 subtree modifications,attribute modifications或node removal。
XHR断点
当XHR的请求URL包含指定字符串时,如果要中断,使用XHR断点
设置XHR断点:
- 点击 Sources 选项卡。
- 展开 XHR Breakpoints 窗格。
- 点击添加断点。
- 输入你想要打断的字符串。当此字符串出现在XHR的请求URL中的任何位置时,DevTools会暂停。
- 按Enter确认。
事件监听器断点
当想要暂停事件侦听器代码时,使用事件侦听器断点
设置事件监听器断点:
- 点击 Sources 选项卡。
- 展开 “Event Listener Breakpoints” 窗格。DevTools显示事件类别的列表,例如动画。
- 选中这些类别中的一个可以暂停该类别的任何事件,或者展开类别并检查特定事件。
异常断点
当您想暂停引发捕获或未捕获异常的代码行时,使用异常断点
设置异常断点:
- 点击 Sources 选项卡。
- 点击暂停
,启用后变成蓝色。
- (可选)如果除了未捕获的异常外,还想暂停捕获的异常,请选中 “Pause on caught exceptions” 复选框。
功能断点
调用 debug(functionName) 来给函数 functionName 进行断点调试
function sum(a, b) {
let result = a + b; // DevTools pauses on this line.
return result;
}
debug(sum); // Pass the function object, not a string.
sum();
未完待续...
参考资料
https://developers.google.com/web/tools/chrome-devtools/
前端开发必备之Chrome开发者工具(一)的更多相关文章
- 前端开发必备之Chrome开发者工具(下篇)
本文介绍的 Chrome 开发者工具基于 Chrome 65版本,如果你的 Chrome 开发者工具没有下文提到的那些内容,请检查下 Chrome 的版本 本文是 前端开发必备之Chrome开发者工具 ...
- 前端开发必备之Chrome开发者工具(上篇)
本文介绍的 Chrome 开发者工具基于 Chrome 65版本,如果你的 Chrome 开发者工具没有下文提到的那些内容,请检查下 Chrome 的版本 简介 Chrome 开发者工具是一套内置于 ...
- 前端开发必备之chrome插件
Chrome浏览器目前是网络上可用的最好的浏览器之一,并且自2011年11月超越了Firefox浏览器之后,已经成为了互联网上占主导地位的浏览器. 本篇文章将与大家分享一些与前端开发有关的实用的Chr ...
- Web前端开发必备工具推荐
http://gaohaixian.blog.163.com/blog/static/12326010520114265223489/不管你做前端开发还是网页重构,前端工具都起着非常重要的作用,这里向 ...
- 前端开发必备调试工具(Chrome的F12自带的功能和firebug插件差不多)
前端开发必备调试工具(Chrome的F12自带的功能和firebug插件差不多) 一.总结 Chrome的F12自带的功能和firebug插件差不多 二.前端开发必备调试工具 在前端开发中我们经常会要 ...
- 前端调试效率低?试试这10个“Chrome开发者工具”使用技巧
摘要:今天给大家分享一些使用“Chrome开发者工具”的小技巧.包括调试,优化页面渲染速度等.希望能提升Web开发人员的工作效率. 今天给大家分享一些使用“Chrome开发者工具”的小技巧.包括调试, ...
- 爬虫必备工具-chrome 开发者工具
在某个网站上,分析和抓取数据,我们用的最多的工具就是 Chrome 开发者工具 01 元素面板 通过元素(Element)面板,我们能查看发哦想抓取页面渲染内容所在的标签.使用什么 CSS 属性(例如 ...
- Chrome开发者工具不完全指南:(三、性能篇)
卤煮在前面已经向大家介绍了Chrome开发者工具的一些功能面板,其中包括Elements.Network.Resources基础功能部分和Sources进阶功能部分,对于一般的网站项目来说,其实就是需 ...
- Chrome开发者工具不完全指南(五、移动篇)
前面介绍了Chrome开发者工具的大部分内容工具,现在介绍最后两块功能Audits和Console面板.一.Audits Audits面板会针对目前网页提出若干条优化的建议,这些建议分为两大类,一类是 ...
随机推荐
- 九度oj题目1002:Grading
//不是说C语言就是C++的子集么,为毛printf在九度OJ上不能通过编译,abs还不支持参数为整型的abs()重载 //C++比较正确的做法是#include<cmath.h>,cou ...
- Redis搭建多台哨兵
搭建多台哨兵 完成spring管理多台哨兵 学习redis如何数据持久化如何管理内存 Redis集群搭建 集群测试 Spring管理集群 2 搭建多台哨兵 2.1 搭建步骤 2.1.1 修改6379哨 ...
- Intel 移位指令的陷阱(转)
今天发现了一个Intel逻辑左移指令shl的一个bug. 逻辑左移的概念是对给定的目的操作数左移COUNT次,每次移位时最高位移入标志位CF中,最低位补零. 其中OPRD1为目的操作数, 可以是通 ...
- Python爬虫——request实例:爬取网易云音乐华语男歌手top10歌曲
requests是python的一个HTTP客户端库,跟urllib,urllib2类似,但比那两个要简洁的多,至于request库的用法, 推荐一篇不错的博文:https://cuiqingcai. ...
- 归并排序及优化(Java实现)
普通归并排序 public class MergeSort { /** * @param arr 待排序的数组 * @param left 本次归并的左边界 * @param mid 本次归并的中间位 ...
- 文本编辑工具vim
前面多次提到过vim这个东西,它是linux中必不可少的一个工具.没有它很多工作都无法完成.早期的Unix都是使用的vi作为系统默认的编辑器的.你也许会有疑问,vi与vim有什么区别?可以这样简单理解 ...
- 三十天学不会TCP,UDP/IP网络编程 -- TCP中的智慧之连续ARQ
突然发现上一篇文章贴图有问题,关键我怎么调也调不好,为了表达歉意,我再贴一篇gitbook上的吧,虽然违背了我自己的隔一篇在这里发一次的潜规则~其余完整版可以去gitbook(https://www. ...
- [luogu2831][noip d2t3]愤怒的小鸟_状压dp
愤怒的小鸟 noip-d2t3 luogu-2831 题目大意:给你n个点,问最少需要多少条经过原点的抛物线将其覆盖. 注释:1<=点数<=18,1<=数据组数<=30.且规定 ...
- sqlite的limit使用
如果我要取11-20的Account表的数据,则为: Select * From Person Limit 9 Offset 10;表示从Person 表获取数据,跳过10行,取9行 .也可以这样 ...
- oracle中事务处理--事务隔离级别
概念:隔离级别定义了事务与事务之间的隔离程度. ANSI/ISO SQL92标准定义了一些数据库操作的隔离级别(这是国际标准化组织定义的一个标准而以,不同的数据库在实现时有所不同). 隔离级别 脏读 ...