• Elements

    chrome devtools 中 Elements panel 是审查 dom 元素和 css 的, 可以实时修改 dom/css.

    • windows: ctrl + shift + i
    • mac: cmd + opt + i

    DOM

    修改 html & 属性

    节点右键, 如下图, 可以:

    • 添加属性(enter)
    • 修改 html(F2)
    • 删除元素(delete)

    除了右键, 还可以:

    • h toggle 元素的 visibility 属性
    • 拖拽节点, 调整顺序
    • 拖拽节点到编辑器
    • ctrl + z 撤销修改

    查看元素上绑定了哪些事件

    • 默认会列出 All Nodes, 这些包括代理绑定在该节点的父/祖父节点上的事件, 因为在在冒泡或捕获阶段会经过该节点
    • Selected Node Only 只会列出当前节点上绑定的事件
    • 每个事件会有对应的几个属性 handlerisAtributelineNumberlistenerBodysourceNametypeuseCapture
      • handler是处理函数, 右键可以看到这个函数定义的位置, 一般 js 库绑定事件会包一层, 所以这里很难找到对应handler
      • isAtribute 表明事件是否通过 html 属性(类似onClick)形式绑定的
      • useCapture 是 addEventListener 的第三个参数, 说明事件是以 冒泡 还是 捕获 顺序执行

    Styles

    修改样式

    • 添加规则
    • 添加、修改属性 同样可以通过 ctrl + z 取消

    断点

    代码断点

    • 设置断点

      • 在 Sources 面板 js 文件行号处设置断点, 这里除了常规断点外, 还有个条件断点(右键 conditional breakpoint), 在设置的条件为 true 时才会断电, 在循环中需要断点时比较有用.
      • 断点后可以查看 堆栈, 变量 信息:
    • 在调用堆栈这里可以切换到堆栈中的任何地方重新执行(右键restart frame), 如果想查看断点前的信息时比较有用.
    • 断点后的变量保存到全局
      • 选中变量, 右键 Evalute in console
      • 在 console 中选中输出的内容, 右键 store as global variable

    事件断点

    元素上事件断点

    devtools 可以查看某一个元素上绑定了哪些事件: Elements > Event Listeners

    dom mutation 断点(推荐)

    dom mutation event 是 DOM3 添加的新的事件, 一般是 dom 结构改变时触发. devtools 可以对 DOMSubtreeModified DOMAttrModified 和 DOMNodeRemoved 时断点. 对上面 元素上事件断点(mouseover) 后不容易找到业务代码, 使用 mutation 断点, 断点后配合 call stack 就可以找到业务代码了, 如下图这种情况使用全局搜索(ctrl + shift + f) 代码中 css classname 也能找到业务代码, 然后直接断点也可以.

    全局事件断点

    devtools 还可以对事件发生时断点, 比如 click 发生时断点, 这个跟 元素上事件断点 不同, 不会限定在元素上, 只要是事件发生, 并且有 handler 就断点; 还可以对 resize, ajax, setTimeout/setInterval 断点.

    下面这个图是 resize 时中断, 因为库都代理了, 还需要在断点处一步一步跟下去才能走到业务代码中.

    几个常用的断点快捷键:

    • F8: 继续执行
    • F10: step over, 单步执行, 不进入函数
    • F11: step into, 单步执行, 进入函数
    • shift + F11: step out, 跳出函数
    • ctrl + o: 打开文件
    • ctrl + shit + o: 跳到函数定义位置
    • ctrl + shift + f: 所有脚本中搜索

    Console

    元素选择

    $(selector)

    即使当前页面没有加载jQuery,你也依然可以使用$和$$函数来选取元素,实际上,这两个函数只是对document.querySelector()和document.querySelectorAll()的简单封装,$用于选取单个元素,$$则用于选取多个:

    $_

    使用 $_ 来引用最近的一个表达式

    $0 - $4

    除了$_,你还可以使用$0,$1,$2,$3,$4这5个变量来引用最近选取过的5个DOM元素。 $0 为Elements HTML 面板中选中的元素。 $1 为上一次在 HTML 面板中选中的元素。 $2$3$4 同样的。不过只能到$4

    copy

    复制到剪切板,copy之后,直接ctrl+v

    信息输出

    在js代码中打点console.log() 类似debugger

chrome devtools的更多相关文章

  1. Chrome DevTools – 键盘和UI快捷键参考

    Chrome DevTools有几个内置的快捷键,可以节省你的日常工作的时间. 本指南提供了Chrome DevTools中每个快捷键的快速参考.虽然一些快捷方式在全局范围内可用,但其他的快捷方式用于 ...

  2. Chrome Devtools简介

    Chrome开发工具(又称DevTools),是一套内嵌在chrome浏览器内部的web编写和调试工具.DevTools提供给web开发人员深入地访问浏览器内部和web应用的机会.DevTools可以 ...

  3. Chrome DevTools good good study day day up

    Chrome DevTools 官方页面 https://developer.chrome.com/devtools

  4. 使用Chrome DevTools的Timeline分析页面性能

    随着webpage可以承载的表现形式更加多样化,通过webpage来实现更多交互功能,构建web应用程序已经成为很多产品的首要选择.这种方式拥有非常明显的优势:跨平台.开发便捷.便于部署和维护等等,但 ...

  5. Chrome DevTools学习笔记

    ---恢复内容开始--- chrome和firefox的开发者工具大同小异,都非常强大.今天在博客园上看了这篇文章(http://www.cnblogs.com/Wayou/p/chrome-cons ...

  6. 使用Chrome DevTools的Timeline和Profiles提高Web应用程序的性能

    来源: http://www.oschina.net/translate/performance-optimisation-with-timeline-profiles 我们都希望创建高性能的Web应 ...

  7. Chrome DevTools 调研笔记

    1  说明 此篇文章针对Chrome DevTools常用功能进行调研分析.描述了每个功能点能实现的功能.应用场景和详细操作. 2  Elements 2.1  功能 检查和实时更新页面的HTML与C ...

  8. Chrome DevTools: Export your raw Code Coverage Data

    The Code Coverage tool visually shows you which lines of code in your CSS and JavaScript are used an ...

  9. Chrome DevTools: Color tricks in the Elements Panel

    shift + click to change the color format Tip one The Colour Platters are customeised for you .they s ...

随机推荐

  1. Windows Socket 组件 HP-Socket v2.2.3

    高性能 Windows Socket 组件 HP-Socket v2.2.3 正式发布 HP-Socket 是一套通用的高性能 Windows Socket 组件包,包含服务端组件(IOCP 模型)和 ...

  2. MongoDB的一些用法(转藏)

    MongoDB是目前工作中经常使用到的NoSQL数据库. 本博客只记录相关理论知识和技巧,涉及到实践的部分都会单开Blog来记录实践过程. ------------------------------ ...

  3. 用aspx文件作为模板

    用aspx文件作为模板 首先申明:标题中的如果是可以去掉的. 想写这篇文章很长时间了,一来是跟大家分享一下,别浪费时间在写代码生成器上面了,什么CodeSmith,XXCodeGenerator等等, ...

  4. Sql Server (错误:7302)

    windows server 2008 x64 sql server 2008 r2 OraClient 11g 错误提示: 解决办法:

  5. mybatis 入门进阶之 pojo

    有时候我们dao方法声明的入参需要是自定义的pojo,以满足复杂的查询条件. IWebUserCustomDao.java package com.mozi.dao; import java.util ...

  6. 【算法专题】工欲善其事必先利其器—— C++ STL中vector(向量/不定长数组)的常用方法总结

    #include<iostream> #include<cstdio> #include<string> #include<vector>//不定长数组 ...

  7. div、span

    1.Html区块元素 HTML可以通过<div>和<span>将元素组合起来 大多数HTML元素被定义为块级元素或内联元素, 而块级元素在浏览器显示时,通常会以新行来开始(或结 ...

  8. Raspberry Pi(树莓派)上从零开始构建Linux系统(简称PiLFS)(一)

    一. 准备工作 1. 装有Linux宿主系统的树莓派主板,可参考 Raspberry Pi(树莓派)上安装Raspbian(无路由器,无显示器) 2. 参考网址:Linux From Scratch ...

  9. BTE 增强

    BTE的设计思路还是比较简单,和BADI有点类似.在标准程序中留有OPEN_FI的出口(以函数OPEN_FI_PERFORM_event id_type的形式存在),然后提供一个可配置的TABLE,可 ...

  10. 第17章 使用PHP和MySQL实现身份验证

    1.对密码进行加密:sha1(string str,bool raw_output) //将返回一个40个字符的伪随机字符串,若raw_output为true,着得到一个20个字符的二进制字符串数据 ...