任逍遥

 找回密码
 立即注册
查看: 30112|回复: 100

Chrome 开发者控制台中,你可能意想不到的功能

    [复制链接]
  • TA的每日心情
    慵懒
    2021-11-26 16:44
  • 签到天数: 488 天

    连续签到: 1 天

    [LV.9]妙领天机

    488

    主题

    3343

    帖子

    4454

    积分

    如雷贯耳

    Rank: 8Rank: 8

    积分
    4454
    发表于 2018-7-23 19:33:56 | 显示全部楼层 |阅读模式

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x

      Chrome 有内置的开发者工具。它拥有丰富的特性,比如元素(Elements)、网络(Network)和安全(Security)。这篇文章我们主要关注一下 JavaScript 控制台。
      当我最初写代码时,我只会使用JavaScript控制台来打印服务器返回值或变量值。但随着时间推移和教程的帮助,我发现这个控制台能做的事远远超乎我的想象。
      接下来我们说说你可以通过控制台做到的事情。如果你在电脑的 Chrome 浏览器(或其他浏览器)中阅读这篇文章,你可以立刻打开开发者工具并尝试。
      1. 选取DOM元素
      如果你对 jQuery 很熟悉,你应该知道 $(‘.class’) 和 $(‘#id’) 选择器的重要性。他们通过元素关联的 class 或 id 来选取元素。
      但当你在 DOM 中无法使用 jQuery 时,你依然可以在开发者控制台中做同样的事情。
      $(‘tagName’) 、$(‘.class’) 、$(‘#id’) 和 $(‘.class #id’) 相当于 document.querySelector(‘ ‘)。它返回选择器在 DOM 中匹配到的第一个元素。
      你可以使用 $$(‘tagName’) 或 $$(‘.class’) 构建特殊的选择器来选取 DOM 中所有匹配的元素(注意是两个 $ 符号)。这会把结果放入一个数组。你可以继续通过下标在数组中获取到特定的某个元素。
      举个例子,$$(‘.className’) 将给你返回所有 class 为 className 的元素,$$(‘.className’)[0]
      和 $$(‘.className’)[1]
      分别给你返回第一个和第二个元素。

      2. 将你的浏览器变成编辑器
      曾经多次幻想是否在浏览器里面就可以编辑文本?答案是可以的,你可以把你的浏览器变成编辑器。你可以在 DOM 中任意添加或移除文本。
      你不再需要检查元素和编辑 HTML。相反,打开开发者控制台输入下面内容:
      document.body.contentEditable=true
      这将使内容变为可编辑状态。你可以编辑 DOM 里的任何东西。
      3. 查找DOM中元素关联的事件
      当调试时,你肯定对 DOM 中约束元素的事件监听器感兴趣。开发者控制台让你更容易找到它们。
      你可以做以下事情来找到特定事件的监听器:
      getEventListeners($(‘selector’)).eventName[0].listener
      这将展示与特定事件相关联的监听器。eventName[0]
      是一个包含所有特定事件的数组。比如:
      getEventListeners($(‘firstName’)).click[0].listener
      它会展示 ID 为「firstName」元素的点击事件所关联的监听器。
      4. 监控事件
      如果你想在 DOM 中特定元素绑定的事件执行时监控它们,你可以通过控制台中完成。你可以使用很多不同的命令来监控部分或全部事件:
      monitorEvents($(‘selector’)) 能够监控你所选取元素所关联的所有事件,当事件触发时,在控制台打印它们。比如 monitorEvents($(‘#firstName’)) 会打印 ID 为「firstName」的元素绑定的所有事件。
      monitorEvents($(‘selector’),’eventName’) 将打印元素绑定的特定事件。你可以将事件名字作为参数传入函数。它将打印特定元素绑定的特定事件。比如,monitorEvents($(‘#firstName’),’click’) 会打印 ID 为「firstName」的元素绑定的点击事件。
      monitorEvents($(‘selector’),[‘eventName1′,’eventName3’,…]) 会根据你的要求打印多个事件。传递参数包含所有事件的字符串数组,而不是单个事件名字。比如,monitorEvents($(‘#firstName’),[‘click’,’focus’]) 会打印 ID 为「firstName」的元素绑定的点击事件和焦点事件。
      unmonitorEvents($(‘selector’)) :这个会停止监视和在控制台打印事件。
      5. 查询代码块执行时间
      JavaScript 控制台有一个名为 console.time(‘labelName’) 的重要函数,它接收一个标记名作为参数,然后开启计时器。另一个重要函数是 console.timeEnd(‘labelName’) ,它也接收一个标记名作为参数,然后结束特定标记名所关联的计时器。
      举个例子:
      console.time('myTime'); //Starts the timer with label - myTime
      console.timeEnd('myTime'); //Ends the timer with Label - myTime
      //Output: myTime:123.00 ms
      上面两行代码给我们展示了计时器开始和结束的间隔时间。
      我们可以改进它来计算代码块的执行时间。
      举个例子,如果我想知道一个循环的执行时间。我可以这样做:
      console.time('myTime'); //Starts the timer with label - myTime
      for(var i=0; i < 100000; i++){
      2+4+5;
      }
      console.timeEnd('mytime'); //Ends the timer with Label - myTime
      //Output - myTime:12345.00 ms
      6. 将变量里的值排列成表格
      比如我们有一个下面这样的对象数组:
      var myArray=[{a:1,b:2,c:3},{a:1,b:2,c:3,d:4},{k:11,f:22},{a:1,b:2,c:3}]
      当我们在控制台输入变量名时,它给我们返回的格式是对象数组。这很有用。你可以展开对象查看属性值。
      但当属性增加时,这变得难于理解。因此,要想清楚地表现变量,我们可以把它展示成表格。
      console.table(variableName) 把变量和它的所有属性展现城表格结构。如下所示:

      7. 检查DOM中的元素
      你可以直接在控制台中检查元素:
      inspect($(‘selector’)) 会检查与选择器匹配的元素,并切换 Chrome 开发者工具到元素标签页。举个例子,inspect($(‘#firstName’)) 检查 ID 为「firstName」的元素,inspect($(‘a’)[3]) 检查 DOM 中第 4 个锚点元素。
      $0、$1、$2 等等能帮助你取到最近检查的元素。比如,$0 给你返回上次检查的 DOM 元素,$1 返回上上次检查的 DOM 元素。
      8. 列举元素的属性
      你可以在控制台中做以下事情来列举一个元素的所有属性。
      dir($(‘selector’)) 返回一个对象和与其 DOM 元素关联的所有属性。你可以展开它查看细节。
      9. 检索最近一个结果的值
      你可以把控制台当做计算器。一旦你这么做,你可能需要在计算中使用上一次的计算结果。下面是如何从内存中取到上一次计算的结果。
      $_
      就像下面这样:
      2+3+4
      9 //- The Answer of the SUM is 9
      $_
      9 // Gives the last Result
      $_ * $_
      81  // As the last Result was 9
      Math.sqrt($_)
      9 // As the last Result was 81
      $_
      9 // As the Last Result is 9
      10. 清空控制台和内存
      如果你想清空控制台和内存,只需要输入:
      clear()
      然后敲回车键。就是酱紫。
      这是使用 Chrome JavaScript 控制台的几个例子。我希望这些小贴士能让你的生活更美好。
    楼主热帖
  • TA的每日心情
    难过
    2019-8-30 11:37
  • 签到天数: 464 天

    连续签到: 2 天

    [LV.9]妙领天机

    2

    主题

    2881

    帖子

    2881

    积分

    声名显赫

    Rank: 7Rank: 7Rank: 7

    积分
    2881
    发表于 2018-7-23 20:06:30 | 显示全部楼层
    这么强,支持楼主,佩服
    回复

    使用道具 举报

  • TA的每日心情
    难过
    2019-8-30 16:39
  • 签到天数: 476 天

    连续签到: 10 天

    [LV.9]妙领天机

    0

    主题

    2911

    帖子

    2907

    积分

    声名显赫

    Rank: 7Rank: 7Rank: 7

    积分
    2907
    发表于 2018-7-24 04:12:13 | 显示全部楼层
    没人回帖。。。我来个吧
    回复

    使用道具 举报

  • TA的每日心情

    2019-8-30 17:50
  • 签到天数: 480 天

    连续签到: 1 天

    [LV.9]妙领天机

    3

    主题

    2843

    帖子

    2837

    积分

    声名显赫

    Rank: 7Rank: 7Rank: 7

    积分
    2837
    发表于 2018-7-24 21:59:09 | 显示全部楼层
    呵呵,低调,低调!
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2019-8-30 15:35
  • 签到天数: 461 天

    连续签到: 1 天

    [LV.9]妙领天机

    2

    主题

    2982

    帖子

    2983

    积分

    声名显赫

    Rank: 7Rank: 7Rank: 7

    积分
    2983
    发表于 2018-7-29 18:39:53 | 显示全部楼层
    我了个去,顶了
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2019-8-30 15:21
  • 签到天数: 465 天

    连续签到: 3 天

    [LV.9]妙领天机

    6

    主题

    2965

    帖子

    2972

    积分

    声名显赫

    Rank: 7Rank: 7Rank: 7

    积分
    2972
    发表于 2018-7-30 04:44:16 | 显示全部楼层
    LZ帖子不给力,勉强给回复下吧
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2019-8-29 01:01
  • 签到天数: 475 天

    连续签到: 3 天

    [LV.9]妙领天机

    0

    主题

    2940

    帖子

    2936

    积分

    声名显赫

    Rank: 7Rank: 7Rank: 7

    积分
    2936
    发表于 2018-8-1 19:53:47 | 显示全部楼层
    呵呵,低调,低调!
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2019-8-30 11:06
  • 签到天数: 472 天

    连续签到: 1 天

    [LV.9]妙领天机

    2

    主题

    2943

    帖子

    2943

    积分

    声名显赫

    Rank: 7Rank: 7Rank: 7

    积分
    2943
    发表于 2018-8-3 19:27:57 | 显示全部楼层
    LZ帖子不给力,勉强给回复下吧
    回复

    使用道具 举报

  • TA的每日心情

    2019-8-29 21:45
  • 签到天数: 477 天

    连续签到: 1 天

    [LV.9]妙领天机

    4

    主题

    2868

    帖子

    2872

    积分

    声名显赫

    Rank: 7Rank: 7Rank: 7

    积分
    2872
    发表于 2018-8-5 05:26:40 | 显示全部楼层
    楼下的接上。。。。
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2019-8-30 20:37
  • 签到天数: 477 天

    连续签到: 5 天

    [LV.9]妙领天机

    1

    主题

    2909

    帖子

    2905

    积分

    声名显赫

    Rank: 7Rank: 7Rank: 7

    积分
    2905
    发表于 2018-8-10 18:11:35 | 显示全部楼层
    是爷们的娘们的都帮顶!大力支持
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|任逍遥

    GMT+8, 2024-4-30 21:11 , Processed in 0.081905 second(s), 46 queries .

    Powered by 任逍遥 X3.4

    Copyright © 2001-2023, Rxiaoyao Cloud.

    快速回复 返回顶部 返回列表