js debug

来源:互联网 发布:iphone4移动数据开关 编辑:程序博客网 时间:2024/06/05 16:48

在开发中,偶尔会遇到类似这样的问题:页面上的一个DOM元素被改了属性,但是我们却不知道是哪个脚本更改的。

有的同学会说,可以使用源代码搜索的办法。的确,对于一个相对简单的页面,这个方法时常奏效。但是,对于构成相对复杂的页面(比如页面嵌入很多脚本文件和片段、使用了大段面向对象的实现、隐藏了实现的代码),可能找起来就不那么顺利了。

在Javascript调试中,我们经常会使用到断点调试。其实,在DOM结构的调试中,我们也可以使用断点方法,这就是DOM Breakpoint(DOM断点)。

具体的使用方法:

1. 在Chrome浏览器中,打开开发者工具,先选中一个页面元素,然后点击鼠标右键,依次点击菜单中的”Break on …”——勾选“Attributes modifications”。刷新页面,当该元素的属性发生变化时,就会暂停脚本的执行,并且定位到改变发生的地方。

2. 在安装了firebug 的Firefox 浏览器中,打开firebug,切换到“HTML”选项卡,选中需要监视的DOM元素,鼠标右键,勾选菜单中的“在属性改变时中断”。这样就成功添加了一个HTML 断点。刷新页面后,firebug 也会帮助我们定位到更改该元素属性的代码。

除了可以监视DOM元素本身的属性变化,Chrome 和 Firebug 还可以监视其子元素的变化,以及何时元素被删除。



通常我们在调试代码时习惯:修改代码→刷新页面→重新检查,这么一个循环。但其实" b>临时修改="b>临时修改" chrome="chrome" console="console" ctrl+s)就可以立即生效,结合="ctrl+s)就可以立即生效,结合" div> 如图所见,在元素审查的="div> 如图所见,在元素审查的" div>

DOM断点,顾名思义就是在DOM元素上添加断点,进而达到调试的目的。而在实际使用中断点的效果最终还是落地到JS逻辑之内。
DOM断点的添加流程为:打开Elements面板——定位到相关DOM节点——单机鼠标右键,弹出侧边栏——鼠标移动到Break on...上,选择相应选项subtree modifications/attributes modifications/node removal即可。

  1. 子节点修改
  2. 自身属性修改
  3. 自身节点被删除

一般选择第二种。




格式化代码(Pretty Print)
Chrome 断点设置 - hanguokai - 韩国恺的博客 按钮用于把杂乱的代码重新格式化为漂亮的代码,比如一些已被压缩的 js 文件基本没法看、更没法调试。点一下格式化,再点一下就取消格式化。
Chrome 断点设置 - hanguokai - 韩国恺的博客
美化前
Chrome 断点设置 - hanguokai - 韩国恺的博客
美化后
原创粉丝点击