Chrome DevTools 中你可能不知道的 9 個除錯技巧
對於前端開發者來說,ChromeDevTools
絕對是不可或缺的除錯工具,我們常用的除錯方法包含一些console
等,而ChromeDevTools
其實很強大,下面來聊聊一些你可能不知道的debug
方法。
Scroll Into View 滾動如檢視內
在Elements
標籤中,檢視頁面元素的時候,如果當前這個元素不在檢視內,可以通過這個方法讓這個元素快速滾入檢視中。
操作:
- 在
Elements
標籤頁中選擇一個不在檢視內的元素 - 右擊,選擇
Scrollintoview
Copy As Fetch 複製為 Fetch
在Network
標籤下的所有的請求,都可以複製為一個完整的Fetch
請求的程式碼。
操作:
- 在
Network
標籤頁中,選中一個請求 - 右擊,選擇
Copy
–>Copyasfetch
阻塞請求
在Network
標籤頁下,選中一個請求,右擊該請求,選擇Blockrequest domain
或Blockrequest URL
,可以分別阻塞該請求所在domain
下的所有請求 和 該請求。
手動給元素新增一個點選事件監聽
在debug
的時候,有時候需要在元素的點選事件監聽函式中,將該點選事件物件列印出來。有個更方便的方式,是可以直接在Elements
標籤頁為頁面元素新增事件監聽事件。
操作:
- 在
Elements
標籤頁中選中一個頁面元素(選中之後,預設可以通過$0
變數獲取到該元素 ) - 在
Console
標籤頁中,呼叫函式monitorEvents
,輸入兩個引數,第一個是當前元素($0
),第二個是事件名(click
) - 按
Enter
後,當被選中的元素觸發了點選事件之後,Console
標籤頁會將該點選事件物件列印出來
拖動頁面元素
在Elements
標籤頁,你可以拖動任何HTML
元素,改變它在頁面中的位置。
操作:如下圖。
DOM 斷點除錯
基本上大家都會用JavaScript
的斷點除錯,但是應該很多人不知道DOM
節點也可以進行斷點除錯。ChromeDevTools
提供了三種針對DOM
元素的斷點除錯:子元素改變時
、屬性改變時
和元素被移除時
。
操作:
- 在
Elements
標籤頁,選中一個元素 - 右擊,選擇
Breakon
–>subtree modifications
(或attribute modifications
或node removal )
截圖
在新版本的Chrome
中,提供了一個截圖的API
,你可以將整個頁面截圖或者擷取部分頁面元素,且擷取的圖片尺寸跟瀏覽器當前檢視中要擷取的內容所佔尺寸一致。截圖輸出的是png
格式的圖片,會自動通過瀏覽器下載到預設的目錄下。現在有三種擷取的方式:擷取整個頁面
、部分元素
或當前檢視
。
擷取頁面部分元素的操作:
- CMD + SHIFT + P ( windows 中用 CTRL + SHIFT + P ) 開啟命令選單
- 在
Elements
標籤頁,選中要擷取的頁面元素 - 選擇 Capture node screenshot
擷取完整頁面的操作
CMD + SHIFT + P
(windows 中用CTRL + SHIFT + P
) 開啟命令選單- 選擇 Capture full size screenshot (不需要選擇頁面元素)
擷取當前檢視內的頁面
- CMD + SHIFT + P (windows 中用CTRL + SHIFT + P) 開啟命令選單
- 選擇 Capture screenshot (不需要選擇頁面元素)
快取上一步操作的結果
在ChromeDevTools
上執行JavaScript
表示式的時候,可以使用$_
來獲取到上一步操作的返回值。
Overrides 重寫
在ChromeDevTools
上除錯css
或JavaScript
時,修改的屬性值在重新重新整理頁面時,所有的修改都會被重置。如果你想把修改的值儲存下來,重新整理頁面的時候不會被重置,那就看看下面這個特性(Overrides
)吧。Overrides
預設是關閉的,需要手動開啟,開啟的步驟如下。
開啟的操作:
- 開啟
ChromeDevTools
的Sources
標籤頁 - 選擇
Overrides
子標籤 - 選擇
+Selectfolderforoverrides
,來為Overrides
設定一個儲存重寫屬性的目錄
小結
中有很多除錯的小技巧,如果細數的話,至少有幾十種。本文限於篇幅,只是列出了一些不容易被發現,且還比較好用的技巧,希望能對你有幫助。ChromeDevTools
相關文章
- 聊聊 Chrome DevTools 中你可能不知道的除錯技巧Chromedev除錯
- 你所不知道的 Chrome 控制檯除錯技巧Chrome除錯
- Chrome DevTools 的 Sources 除錯Chromedev除錯
- 【譯】你不知道的Chrome除錯工具技巧 第一天:console中的 ‘$’Chrome除錯
- 【譯】你不知道的Chrome除錯工具技巧 第一天:console中的 '$'Chrome除錯
- chrome的除錯技巧Chrome除錯
- 【譯】12個Chrome DevTools小技巧Chromedev
- Chrome 除錯技巧Chrome除錯
- 【譯】你不知道的 Chrome 除錯工具技巧 第十三天:物件 & 方法Chrome除錯物件
- 【譯】你不知道的 Chrome 除錯工具技巧 第十五天:Twitter day!Chrome除錯
- 【譯】你不知道的 Chrome 除錯工具技巧 第十九天:深入 DrawerChrome除錯
- 【譯】你不知道的 Chrome 除錯工具技巧 第十六天:斷點Chrome除錯斷點
- 【譯】你不知道的Chrome除錯工具技巧 第六天:command 選單Chrome除錯
- 【譯】你不知道的Chrome除錯工具技巧 第二天:copying & savingChrome除錯
- 【譯】你不知道的 Chrome 除錯工具技巧 第十四天:其他快捷鍵~Chrome除錯
- 【譯】你不知道的 Chrome 除錯工具技巧 第十七天:再會consoleChrome除錯
- Vue你可能不知道的7個技巧Vue
- 【譯】你不知道的 Chrome 除錯工具技巧 第二十天:Workspace的黑魔法Chrome除錯
- 這個小技巧你可能不知道。
- 【譯】你不知道的Chrome除錯工具技巧 第四天:the Elements panel(元素皮膚)Chrome除錯
- 【譯】你不知道的 Chrome 除錯工具技巧 第九天:給 console 計時Chrome除錯
- 【譯】你不知道的 Chrome 除錯工具技巧 第二十二天:networkChrome除錯
- Android Pie的9個隱藏功能:你可能錯過的若干最佳技巧Android
- 【譯】你不知道的 Chrome 除錯工具技巧 第十八天:Drawer 裡的祕密Chrome除錯
- 10 個你可能不知道的 Android Studio 技巧Android
- 實用卻易忽視的DevTools除錯技巧dev除錯
- 【譯】你不知道的Chrome除錯工具技巧 第五天:console的log中,讓人疑惑的案例Chrome除錯
- Android 你不知道的除錯技巧(Debug操作彙總)Android除錯
- 【譯】你不知道的 Chrome 除錯工具技巧 第十二天:忍者日誌列印!(the ninja logs)...Chrome除錯
- 【譯】你不知道的 Chrome 除錯工具技巧 第十二天:忍者日誌列印!(the ninja logs)Chrome除錯
- 你可能不知道的字串分割技巧字串
- 分享 10 個你可能不知道的 Laravel Eloquent 小技巧Laravel
- 【譯】你不知道的 Chrome 除錯工具技巧 第八天:Color picker(顏色選擇器)Chrome除錯
- 【譯】你不知道的 Chrome 除錯工具技巧 第二十三天:Drawer tips 後續Chrome除錯
- 【譯】你不知道的 Chrome 除錯工具技巧 第二十一天:Snippets(程式碼塊)Chrome除錯
- 【譯】你不知道的Chrome除錯工具技巧 第七天:非同步console的趣味小竅門Chrome除錯非同步
- 前端Chrome除錯技巧最全彙總前端Chrome除錯
- 新年新技巧:你可能不知道的Python技巧Python