上一篇咱们学习了谷歌Chrome浏览器开发者工具的基础功能,下面介绍的是Chrome开发工具中最有用的面板Sources。 Sources面板几乎是最经常使用到的Chrome功能面板,也是解决通常问题的主要功能面板。一般只要是开发遇到了js报错或者其余代码问题,在审视一遍代码而一无所得以后打开Sources进行js断点调试,几乎能解决8成的代码问题。css

js断点功能让人兴奋不已,之前只能在IE中靠alert弹出窗口调试js代码,那样的开发环境对于前端程序员来讲简直是一场噩梦。本篇介绍Sources的具体用法,帮助各位在开发过程当中够愉快地调试js代码,而不是因它而发疯。html

首先打开F12开发工具切换到Sources面板中前端

Sources功能面板是资源面板,他主要分为四个部分,四个部分并非独立的,他们互相关联,互动共同实现一个重要的功能:监控js在执行期的活动。简单来讲就是断点啦。程序员

首先咱们来看区域1,它的功能有些相似于Resources面板,主要是显示网页加载的脚本文件:例如css, js等资源文件(它不包含cookie,img等静态资源文件)。web

区域1的导航条上有三个tab切换选项,他们都存有不一样域名和环境下的js和css文件,咱们首先来讲明Sources(资源)选项的做用:数组

Sources: 包含该项目的静态资源文件。双击选中文件,该文件内容会在区域2中显示,若是你选中的是js文件,那么你能够在区域2种单击行号进行断点调试,只要js执行到了你所标记的这一行,它会中止向下执行而且等待你的命令:浏览器

从上图能够看到js执行到断点处时各个区域的变化,首先是区域3中的Breakpoints记录信息会变高亮,而后是区域4中Scope 选项中列出了断点处私有和公有的变量信息,这样,我能够很直观地知道,此时此刻js的执行状态。一样的,你能够把鼠标放到区域2种的某个变量上,浏览器会弹出一个小框框,框框里面则是你悬浮其上的变量全部信息:cookie

而后,你能够按F10跟着js执行的路径一步一步地走下去,若是你遇到了一个函数包含着另一个函数,那么你能够按F11进入到个函数中去观察它的代码执行活动。你也能够经过点击区域1底部的各个图标对js代码进行跟踪。不过我建议你使用快捷键,故名思义,由于它比较快捷方便。不过怎么用彻底按照我的习惯来吧。下图是各个按钮的做用功能。编辑器

在上图蓝色圆圈中数字,它们分别表明:函数

一、中止断点调试

二、不跳入函数中去,继续执行下一行代码(F10)

三、跳入函数中去(F11)

四、从执行的函数中跳出

五、禁用全部的断点,不作任何调试

六、程序运行时遇到异常时是否中断的开关

接下来在区域4种切换到Watch Expressions 选项,它的做用是为目前断点添加表达式,使得每次断点往下走一步都会执行你写下的js代码。须要注意的是这个功能必须谨慎使用,由于这可能会致使你写下的监控代码段会不断地被执行。

为了不你的调试代码重复执行,咱们能够在调试时直接在console控制台上一次性地输出当前断点处的信息(推荐这样作)。为了验证咱们在console面板中拥有的是当前断点环境,我门能够对比断点执行先后的this值变化。

若是你以为在断点的时候为了看一个变量必须借用console面板输出的方式来查看会比较麻烦,那么你能够更新最新版的Chrome,它已经为咱们解决了这个烦恼。为了方便开发者调试,在这一点上谷歌已经作到了极致,就在前几天更新过Chrome之后,卤煮意外地发现了断点时监控环境变量的另一种方式,这种方式极为清晰,在断点调试的时候,区域2中会自动显示每一个变量的值,每次代码往下走的时候这个值都回时时更新。这让开发者对当前环境变量几乎能够说是一目了然。(此功能有一个小缺陷,那就是没法查看数组或者对象的具体索引和值,不过我相信google会改进它的。)

当你的项目已经线上,出现了一个bug,你修复了以后没法看到它真正在线上的效果,那么你能够在打开线上的项目,直接在浏览器中修改代码而后看到效果。这样的效果每每是最直接的,这种方法也能帮你省去频繁验证发布的麻烦,毕竟身为前端码农的你也必定会听到事后台(一般状况下是后台发布)大哥的抱怨:“XXX,测试经过了没,不要出现了哈,发布一次很麻烦的!”。而在Chrome里面,只须要在区域2种直接修改,你就能够验证你的代码在线上是否可行。卤煮在此处只是指出该功能的用法之一。其余的就凭诸位的聪明才智去想了。

即便在断点时,你也能够编辑代码,按ctrl+S保存以后,你会看到区域2的背景由白色变为浅色,而断点会从新开始执行。

回到区域1,Content script 选项开里面包含着一些第三方插件或者浏览器自身的js代码,常常它是被忽略的,实际上它的做用不多。咱们能够更多关注一下Snippets选项。还记得基础篇里面介绍的style吗?在里面咱们能够编辑界面的css代码而且即时看到它们的映射效果,一样地,在Sinppets中,咱们也 能够编辑(重写)js代码片断。这些片断实际上就至关于你的js文件同样,不一样的是本地的js文件在编辑器里面编辑的,而此处,你是在浏览器中编写的。这些代码片断在浏览器刷新的时候既不会消失,也不会执行,除非是你手动执行它。它能够存在你的本地浏览器中,即便关闭浏览器,再次打开时它依然还在那里。它的主要做用可使得咱们编写一些项目的测试代码时提供便捷,你知道,若是你在编辑器上编写这些代码,在发布时你必须为它们添加注释符号或者手动删除它们,而在浏览器上编写就不须要这样繁琐了。

在Snippets选项的空白处右键后选择弹出的new选项,创建一个你本身的新的文件,而后在区域2种编辑它。

Snippets 的很是功能强大,它的许多隐藏功能还有待发掘。目前卤煮使用它是在记住调试片断、单元测试、少许的功能代码编写功能上。

最后咱们看看js中时间丰富的监控功能,同上篇文章介绍的同样,Sources面板和Elements面板同样有监控事件的功能,并且Sources中功能更加丰富,也更增强大。它的这部分功能集中在区域3中。我如下图为例,观察其做用。

从上到下,紫色圈内的数字的意义:

一、断点处的债堆栈,就是从该函数起,逐级追寻调用到他的函数名。例如:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

function a () {

b();

}

function b() {

c();

}

function c() {

//在该处断点,查看call stack

}

a->b->c.

call stack 从上到下的顺序就是

c

b

a

二、在区域2中你的断点调试信息。当某个断点在执行的时候对应的信息会高亮,双击该处信息能够在区域2中快速定位。

三、添加的Dom监控信息。

四、击+ 并输入 URL 包含的字符串便可监听该 URL 的 Ajax 请求,输入内容就至关于 URL 的过滤器。若是什么都不填,那么就监听全部 XHR 请求。一旦 XHR 调用触发时就会在 request.send() 的地方中断。

五、为网页添加各类类型的断点信息。如选中了Mouse中的某一项(click),当你在网页上出发这个动做(单击网页任意地方),你浏览器就是马上断点监控该事件。

值得再次重复一遍,Sources是通常的功能开发中最经常使用到也是最有用的功能面板,它里面的许多功能对于咱们开发前端工程来讲是很是有帮助的。在web2.0时代的今天,我不推荐依然在本身的代码里面写调试信息的行为,由于这会然你的开发变得繁琐。Chrome开发工具给咱们提供的强大功能,咱们应该好好利用之。这篇文章就到此结束,虽然有点繁琐,但总算基本表述了卤煮使用经验和想法,但愿对你有帮助。若是你以为不错,请推荐一下本文并继续关注卤煮在的博客。在下一篇中我将向你们介绍Chrome开发工具中的性能方面的调试。

浏览器开发者工具修改html后执行,谷歌Chrome浏览器开发者工具教程—JS调试篇相关推荐

  1. linux 关闭浏览器,在Linux和Windows下关闭谷歌Chrome浏览器中的通知提醒的方法

    本文教你使用浏览器内置的设置来关闭谷歌Chrome浏览器中的通知提醒,支持Linux和Windows等跨平台. 前言 谷歌的Chrome浏览器允许网站向用户推送通知/提醒,自然用户也可以阻止这些通知. ...

  2. 谷歌Chrome浏览器开发者工具教程—JS调试篇

    上一篇我们学习了谷歌Chrome浏览器开发者工具的基础功能,下面介绍的是Chrome开发工具中最有用的面板Sources. Sources面板几乎是最常用到的Chrome功能面板,也是解决一般问题的主 ...

  3. chrome浏览器上传文件延迟_解决谷歌Chrome浏览器上传图片反应慢的办法

    谷歌chrome浏览器本来非常好用,但是可能有的人在更新版本或重装电脑后,用着用着突然发现上传图片或文件的时候居然直接卡死!只能强制关闭后用ie上传,为此笔者也一度很苦恼.笔者在网上搜索答案后,并没有 ...

  4. Google谷歌Chrome浏览器怎么更新升级到谷歌google浏览器最新版?

    如果您使用的谷Google谷歌Chrome浏览器提示更新,而点击更新后打开网站失败的请看看下面的操作教程就能解决您遇到的问题: Google谷歌Chrome浏览器怎么更新升级到谷歌google浏览器最 ...

  5. 谷歌 chrome 浏览器开发者工具打不开的解决方法

    谷歌 chrome 浏览器开发者工具打不开的解决方法 参考文章: (1)谷歌 chrome 浏览器开发者工具打不开的解决方法 (2)https://www.cnblogs.com/youding/p/ ...

  6. 如何设置IDM为谷歌Chrome浏览器默认下载工具

    如何设置IDM为谷歌Chrome浏览器默认下载工具 IDM Internet Download Manager(简称IDM)是一个用于Windows系统的国外下载工具,IDM可被Google Chro ...

  7. 谷歌chrome浏览器源码分析

    谷歌chrome浏览器源码分析 2016-01-21 15:24 55人阅读 评论(0) 收藏 举报  分类: C++(52)  转自CSDN 前言: 1.之所以整理此文,有俩个目的:一是为了供自己学 ...

  8. HTML谷歌怎么加背景音乐,谷歌Chrome浏览器怎么提取网页的背景音乐?

    谷歌Chrome浏览器怎么提取网页的背景音乐?授人以鱼不如授人以渔,看到网友LYF在论坛某网站首页的网页背景音乐,热心网友Q1628393554真心可爱,将具体操作方法分享了出来,这是帮了我的大忙,可 ...

  9. h5微信本地调试 vue_UniApp本地调试H5(谷歌chrome浏览器)跨域问题的解决方法,亲测可用...

    UniApp本地调试H5跨域(谷歌chrome浏览器,UniApp内置浏览器不存在此问题)的推荐方案:欺骗浏览器,让浏览器觉得你没有跨域(其实还是跨域了,用的是代理) 客户器端解决方案(亲测可用): ...

最新文章

  1. 基于postfix一步一步构建Mailserver,支持虚拟用户,支持WebMail
  2. bwapp之xss(blog)
  3. OpenGL indirect material间接材料的实例
  4. react使用setSetat设置多级对象的值
  5. 怀卡托大学硕士计算机科学,2020年怀卡托大学研究生一般几年毕业
  6. python函数传值还是地址_Python传值与传址
  7. HTML5通信机制与html5地理信息定位(gps)
  8. 5.7. Text Processing
  9. 51. yii csrf
  10. 用python做频数分析_如何用Python制作频率(频数)分布表(图)?
  11. php框架laravel下载,Laravel框架下载,安装及路由操作图文详解
  12. 【常用快捷键大总结】教你背通所有键盘操作
  13. inux内核态文件操作filp_open/filp_close/vfs_read/vfs_write
  14. 名帖86 蔡襄 行楷《谢赐御书诗表》
  15. Assigning Pods to Nodes(将Pod分配到Node)
  16. 最活跃的FPGA论坛
  17. 将map中的key变小写
  18. WordPress主题:Dux主题 V6.4免费分享(113p.cn)
  19. 格式化 计算机术语,计算机格式化操作步骤
  20. unity接入百度人体识别

热门文章

  1. sbm matlab,超效率sbm模型matlab-如何用matlab估计空间杜宾模型
  2. 一汽大众t一roc_最近迷上了一汽大众T-ROC探歌,到底哪个配置的车型最值得买
  3. matlab如何取对数坐标,利用Matlab提取图片中曲线数据(线性修正,支持对数坐标)
  4. 【物理应用】基于粒子群优化算法实现瞬变电磁法视电阻率反演附matlab代码
  5. Datawhale--组队学习第12期--python爬虫基础学习---Task03:Task03:session和cookie、ip代理、selenium自动化 拔高:丁香园留言板爬取(2天)
  6. 出生于77年至83年的十大经典
  7. 华为数通笔记-BGP环路、次优问题、黑洞路由
  8. sharepoint 2010 社区中心系统-在线问答-扩展讨论板Dicussion答复功能
  9. 怎样把视频压缩到100M?如何在线无损压缩视频?
  10. 什么软件可以测试色卡颜色,Pantone.inc彩通色卡识别软件