你不知道的 Chrome DevTools 玩法

大家好,我是若川。今天再分享一篇 chrome devtools 的文章。之前分享過多篇。
Chrome DevTools 全攻略!助力高效開發??
前端容易忽略的 debugger 調試技巧


?筆者在前段時間的開發時,需要通過 Chrome DevTools來分析一個接口,調試中發現了控制臺中的 copy 函數,非常的好用,進而發現了新世界,學習到了 Chrome 一些奇怪的調試技巧,這里總結分享給大家,希望能對各位的開發起到幫助!

多圖預警,建議在Wifi環境下閱讀本文章。

開發者工具函數

copy

copy 函數可以讓你在 console 里拿到任意的資源,甚至包括一些變量,在復制一些特別冗長的數據時特別有用,當復制完成后,直接使用 ctrl + v 即可。

copy 接受一個變量作為參數,如果有多個參數,則忽略第一個后面的所有參數,當需要復制不存在變量名的數據時,可以配合 Store As Global 來使用。

Store As Global

當我們從控制臺獲取一些數據卻沒有變量名時(在開發時特別常見),可以通過右鍵點擊數據旁的小三角形,通過其來儲存為全局變量,變量名為 temp1 一直延續下去,就可以配合 copy 獲取變量名打印了,該功能對 HTML 元素同樣適用。

$

這個 $jQuery 中的 $ 有部分相似之處,均可以作為選擇器來使用,這里依次介紹其用法。

首先是 $0 ~ $4 可以獲取點擊的 HTML 元素,其中 $0 對應著最后一次點擊的元素,$1 次之,依序排列直到$4

根據這個操作可以很輕易的復制一個元素,并對其執行一些 DOM 操作。

還可以作為選擇器使用,其中 有兩種用法,分別是單 $ 和雙 $,需要注意的是,雙 $ 返回的并非 NodeList而是一個純正的數組,直接方便了我們在控制臺調用API????。

有時僅僅需要獲取上一次輸出沒有變量名的數據該怎么辦?這時你心中應該有一個答案,就是通過 Store As Global 把其變為一個變量,但是這樣太麻煩了,$_ 可以幫你解決這個煩惱,其返回結果就是上次執行結果的引用。

這里可以看到并不會重新計算一遍結果,而是直接引用。

最后關于$ 命令操作是重磅戲,可以通過 $i 安裝 NPM 庫,這是一條未曾設想過的道路,筆者查閱發現時,屬實被震撼到了。在Console Importer 插件的幫助之下,就可以幫助我們實現這一操作!首先在谷歌應用商店安裝好該插件后,在命令臺輸入 $i('lodash') 后,神奇的事情就會出現。

此時就可以在 Console 中使用 Lodash 了!

getEventListeners

可以方便的獲取元素綁定的事件,特別是配合 $ 使用,不過獲取事件功能也可以在 Element 中查看,主要是當元素嵌套層級深且復雜時,可以不用點擊而通過選擇器來查看元素。

monitor

這是 DevTools 自帶的監聽器,簡單的說明就是監聽函數的函數,使用起來很簡單,直接套娃就行。目前沒發現有什么特別方便的地方和使用它的需求,了解即可。

Preserve Log

在我們調試頁面時,經常遇到頁面跳轉或刷新的情況,此時打印的輸出會被刷新掉????,看不到想要的數據。在調試面板最右邊的齒輪圖標處,有 Preserve Log選項,可以保存上一次打印的輸出,這里用 Math.random 作演示。

inspect

inspect 提供了一個可以快速跳轉到 DOM 元素對應位置的方法,對于一些嵌套層級復雜或者未知的元素,可以通過 inspect 配合調試,將元素的選擇器至傳入函數中,則會自動跳轉到其對應位置。

元素面板

元素面板即為 Elements 面板的內容,我們一般用其獲取對應元素的信息,比如 Styles && Computed && Layout 等,其中我們會對元素做一些操作,比如操作一個元素的顯隱要怎么辦?其中一個答案就是右鍵該元素,然后選擇 Hide Element,但這樣做有點麻煩,能不能有更好更快的辦法呢?答案是有的,直接選擇該元素,在鍵盤上按下 "h" 即可切換元素的顯隱狀態,Amazing!

不僅如此,還可以直接拖動元素達到調整元素位置的功能。

Layout

Layout 是歸屬于元素面板的子面板,在其中可以查看元素的布局,特別是對于 flex && grid 來說,簡直是好用的不得了,接下來我們先看 grid 布局的操作:

當用戶點擊一個使用 grid 布局的元素時,則會顯示出其所有的小方格。

當然這還不夠,我們還想要知道更詳細的信息,比如每個格子所占的容量,寬度是多少,可以點擊 Overlay display settings 下的選項來操作。

其中第一個下拉框可以選擇展示 line namesline numbers,也就是線段的別名和線段對應的序號。

后續三個選項分別為

  • 顯示軌道大小:切換以顯示或隱藏軌道大小。

  • 顯示區域名稱:在具有命名網格區域的網格的情況下,切換以顯示或隱藏區域名稱。

  • 擴展網格線:默認情況下,網格線僅顯示在帶有display: grid或display: inline-grid設置在其上的元素內部;當打開此選項時,網格線沿每個軸延伸到視口的邊緣。

文字描述可能看起來不好理解,下面有動圖挨個解釋????。

第一選項可以很清楚的看到每行每列的寬度,第二個選項可以看到每一個“塊”的別名,第三個選項可能看的不是很清楚,其延伸 grid 的線段至視口邊緣,可以仔細觀察最下方和最右方,發現會多了幾條虛線。

Grid overlays 有一個顏色塊和一個帶有鼠標的虛線塊,其功能也很有用,分別是自定義每個 grid 的網格覆蓋顏色和突出顯示網格。

都說到 grid 了,怎么能不提 flex ?目前在 Chrome 91 版本來看,調試 flex 的功能是要更多一些的,喜歡 grid 的不要擔心,在92版本會同步兩者的功能!

這里介紹其最新的特性,通過元素面板的 Styles 子面板,在對應元素的樣式里多了一個小按鈕,點擊該按鈕能夠很方便的切換 flex 的各種布局。

Animations動畫組

還記得剛來組里時,第一個需求需要用到動畫展示。當時調試動畫全靠一點一點的數值修改,浪費了很多時間。最近發現調試工具中有動畫組的概念,能夠很方便的調試和觀察動畫。不過該功能隱藏的很深,藏在 More Tools 里。

里面的功能異常強大,能夠捕捉所有當前在運作的動畫組,并且修改其速度和耗時,在需要多個動畫配合的時候非常好用。這里是 Codepen的官網 可通過它來感受 Animations 的強大,其由上至下分為4個區域:

  1. 最上方的區域可以清除所有捕捉的動畫組,或者更改當前選定動畫組的速度。

  2. 第二行可以選擇不同的動畫組,此時下方面板將會更新為當前動畫組的動畫時間線。

  3. 在中間擁有時間線的區域,可以理解為動畫的進度條,可以通過拖動來跳轉到動畫對應的時間點。

  4. 在最下方的區域里,可以修改選定的動畫。

在使用動畫組捕捉動畫后,我們可以進行慢速播放,重播動畫。把鼠標放在動畫上面則可以看動畫預覽,這里最棒的就是可以體驗不同動畫組合過后的效果,并修改動畫組的時間與延遲,甚至是關鍵幀偏移。

可以拖動動畫的實心圓,也就是其關鍵幀,來控制動畫的持續時間(最左和最右的兩個實心圓)。也可以拖動中間的實心圓來控制運動曲線,可以通過調試來獲得最想要的效果。

中間有一條紅色的線,可以拖動它來控制當前動畫執行的過程在哪里,這里注意左側的拖動和右側動畫的轉變。

有了動畫組,排列組合再也不是夢!

完結撒花

本次介紹的功能多是一些筆者認為實用的功能,比如各種命令行函數,又或者是 Chrome 的新特性,比如 flex && grid 的調試功能,這些功能在開發中若是處置得當,能夠很好的提升開發效率,當然還有很多很多調試功能沒有介紹,畢竟如何利用好 DevTools 也是一門很深的學問,這些特性就留在日后開發中挖掘再來補坑吧。


最近組建了一個江西人的前端交流群,如果你是江西人可以加我微信?ruochuan12?私信 江西?拉你進群。


推薦閱讀

我在阿里招前端,該怎么幫你(可進面試群)
我讀源碼的經歷

在字節做前端一年后,有啥收獲~
老姚淺談:怎么學JavaScript?

·················?若川簡介?·················

你好,我是若川,畢業于江西高校。現在是一名前端開發“工程師”。寫有《學習源碼整體架構系列》多篇,在知乎、掘金收獲超百萬閱讀。
從2014年起,每年都會寫一篇年度總結,已經寫了7篇,點擊查看年度總結。
同時,活躍在知乎@若川,掘金@若川。致力于分享前端開發經驗,愿景:幫助5年內前端人走向前列。

點擊方卡片關注我、加個星標

今日話題

略。歡迎分享、收藏、點贊、在看我的公眾號文章~

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/275634.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/275634.shtml
英文地址,請注明出處:http://en.pswp.cn/news/275634.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

matlab擬合四次函數表達式,用matlab編寫程序求以冪函數作基函數的3次、4次多項式的最小二乘曲線擬合,畫出數據散點圖及擬合曲線圖...

共回答了18個問題采納率:83.3%x[0.0 0.1 0.2 0.3 0.5 0.8 1.0]; %輸入數組>> y[1.0 0.41 0.50 0.61 0.91 2.02 2.46];>> f1inline(poly2sym(polyfit(x,y,3))); %polyfit擬合得到系數,poly2sym由系數得到多項式,inline轉換內聯函數>> f2inline(pol…

排版人員 快速排版_選擇排版前應了解的事項

排版人員 快速排版Design is everywhere, and with design comes text and the content that you’re trying to reach the user with. But before creating your design and choosing what font you want to use, there are some things you should know that will help you a…

matlab光順拐點,基于MATLAB的最大誤差雙圓弧逼近曲線的算法及實現.pdf

基于MATLAB的最大誤差雙圓弧逼近曲線的算法及實現.pdf第31卷第6期 基于MⅢB的最大誤差雙圓弧逼近曲線的算法及實現文章編號:1004—2539120町】06一唧一∞基于MAⅡ.AB的最大誤差雙圓弧逼近曲線的算法及實現淮海工學院機械工程系,扛蘇連云港笠a…

若川誠邀你加源碼共讀群,幫助更多人學會看源碼~

小提醒:若川視野公眾號面試、源碼等文章合集在菜單欄中間【源碼精選】按鈕,歡迎點擊閱讀,也可以星標我的公眾號,便于查找。回復pdf,可以獲取前端優質書籍。最近我創建了一個源碼共讀的前端交流群,希望嘗試幫…

體育木地板的施工

文章來源:http://www.bjfhrd.com 體育木地板上有許多暗門,以制造特殊效果,如火焰、煙霧,使房屋、樹木、山或人物在一瞬間出現或銷售。這種特殊的要求,對于專業體育木地板德施工就有了一定的要求。 專業體育木地板施工&…

imessage_重新設計iMessage以獲得更好的用戶體驗— UX案例研究

imessage體驗設計 (EXPERIENCE DESIGN) Communication is a vital part of our everyday lives. We almost don’t even have to think about it. With social media and our devices as prime tools, we’re constantly finding new ways to stay connected. Instant messagin…

mysql 生成時間軸,MYSQL 時間軸數據 獲取同一天數據的前3條

創建表數據CREATE TABLE praise_info (id bigint(20) NOT NULL AUTO_INCREMENT COMMENT ID,pic_id varchar(64) DEFAULT NULL COMMENT 圖片ID,created_time datetime DEFAULT CURRENT_TIMESTAMP COMMENT 創建時間,PRIMARY KEY (id),KEY pic_id (pic_id) USING BTREE) ENGINEInn…

【招聘】永輝招前端

大家好,我是若川。這應該招聘第六期。友情幫好友宣傳招聘。之前在跟各位讀者朋友分享下公眾號運營策略 文中提到 公眾號主旨是幫助5年內前端小伙伴提升,找到好工作,所以有招聘文。上海 高級前端 本科 25k-50k 16薪崗位職責:1、…

C語身教程第三章: C說話挨次籌算匹面(1)

C說話挨次籌算本課先容C說話挨次籌算的根基要領和根基的挨次語句。從挨次流程的角度來看,挨次可以分為三種根基構造, 即挨次構造、分支構造、循環構造。 這三種根基構造可以組玉成部的種種重年夜挨次。C說話供給了多種…

插圖 引用 同一行兩個插圖_插圖的目的

插圖 引用 同一行兩個插圖If you’re a designer in tech you’ve likely come across them. Any search for UI or product design on Dribbble will yield at least a few. Amid the sea of pastel blues and pinks, accented neon purples and gamboge yellows, these facel…

php 轉碼iconv,PHP iconv()函數轉字符編碼的問題(轉)

在php函數庫有一個函數:iconv(),iconv函數庫能夠完成各種字符集間的轉換,是php編程中不可缺少的基礎函數庫。最近在做一個小偷程序,需要用到iconv函數把抓取來過的utf-8編碼的頁面轉成gb2312,發現只有用iconv函數把抓取…

VSCode 竟然可以無縫調試瀏覽器了!

大家好,我是若川。今天周末,分享一篇相對比較簡單的文章。學習源碼系列、面試、年度總結、JS基礎系列。2021-07-16 微軟發布了一篇博客專門介紹了這個功能,VSCode 牛逼!在此之前,你想要在 vscode 內調試 chrome 或者 e…

最少的編碼

Knowing how to code HTML email can bring you many opportunities, such as working as a digital designer, collaborating with front end developers, finding freelancing projects.知道如何對HTML電子郵件進行編碼可以為您帶來許多機會,例如擔任數字設計師&a…

Hulu CEO預計網站本年營收將達5億美元

網易科技訊 3月2日動靜,據國外媒體報道,美國在線視頻網站Hulu CEO杰森吉拉爾(Jason Kilar)明天不日發揮分析,Hulu本年告白及訂閱營收將達5億美元,是去年的兩倍。吉拉爾周一在由互聯網告白局舉辦的“2011年年…

webRTC——瀏覽器里的音視頻通話

背景 webRTC是Google在2010年收購GIP公司之后獲得的一項技術。如下圖所示,它提供了音視頻的采集、處理(降噪,回聲消除等)、編解碼、傳輸等技術。webRTC的目標是實現無需安裝任何插件就可以通過瀏覽器進行P2P的實時音視頻通話及文件傳輸,來看看…

面對 this 指向丟失,尤雨溪在 Vuex 源碼中是怎么處理的

1. 前言大家好,我是若川。好久以前我有寫過《面試官問系列》,旨在幫助讀者提升JS基礎知識,包含new、call、apply、this、繼承相關知識。其中寫了 面試官問:this 指向 文章。在掘金等平臺收獲了還算不錯的反饋。最近有小伙伴看我的…

轉:Python: threading.local是全局變量但是它的值卻在當前調用它的線程當中

原文地址:http://www.cnblogs.com/fengmk2/archive/2008/06/04/1213958.html 在threading module中,有一個非常特別的類local。一旦在主線程實例化了一個local,它會一直活在主線程中,并且又主線程啟動的子線程調用這個local實例時&#xff0c…

matlab的邊緣檢測方法,常用圖像邊緣檢測方法及Matlab研究

2011 年 2 月 15 日第 34 卷第 4 期 現代電子技術 Modern Electronics Technique Feb. 2011 Vol. 34 No. 4 常用圖像邊緣檢測方法及 Matlab 研究 韋  煒 (西安文理學院 , 陜西 西安   710065) 摘  要 :邊緣檢測在數字圖像處理中有著重要的作用。為了在實際應用中能夠選擇最佳…

單選按鈕步驟流程向導 js_創建令人愉快的按鈕的6個步驟

單選按鈕步驟流程向導 jsThere is no modern interactive UI without buttons. They are an fundamental part of every digital solution. Learn how to improve the style of your buttons and delight users with perfect style.沒有按鈕,就沒有現代的交互式UI。…

Android 四大組件之 Activity

什么是 Activity? Activity 是 Android 的四大組件之一,是用戶操作的可視化界面,它為用戶提供了一個完成操作指令的窗口。 當我們創建完 Activity 之后,需要調用 setContentView(view) 方法來完成界面的顯示,以此來為用…