【Chrome控制台】獲取元素上綁定的事件信息以及監控事件


需求場景 

在前端開發中,偶爾需要驗證下某個元素上到底綁定了哪些事件,以及監控某個元素上的事件觸發情況。

解決方案

普通操作

之前面對這種情況,一般采取的措施就是在各個事件里寫console.info,然后進行點擊等操作觸發事件,或者在控制台trigger元素上的事件,或者dispatchEvent。

這種方法比較繁瑣,而且假如觸發這個事件之前需要做大量操作,觸發時間后需要重新來過,真的是浪費時間啊。

神級操作

今天偶然發現借助Chrome控制台的命令行,可以簡單快捷地解決這個問題。

獲取事件信息命令: getEventListeners

看到本頁面那個精靈球了嗎,接下來我們獲取那個精靈球上的事件信息。

Chrome控制台輸入命令:

getEventListeners(document.querySelector(".diggit"))

  得到結果:

   

chrome控制台會輸出一個事件信息數組,圖中可以看出精靈球上有一個點擊事件,useCapture為false表示這個事件是冒泡而不是捕獲,once為false表示這個事件不會只監聽一次,passive為 false表示這個事件是很普通的事件,瀏覽器的默認操作不會在另一個線程中進行。

展開listener:

  

里面還會展示事件將依次在哪些元素上冒泡觸發。

 

監控元素上的事件命令: monitorEvents 和 unmonitorEvents

看名字就大概知道一個是監控事件,一個是取消監控事件。

那么同樣監控一下那個精靈球:

monitorEvents(document.querySelector(".diggit"))

當我運行此命令行后,將鼠標再移動到精靈球上時,控制台很快輸出了大量事件。

一般情況下,這並不是我們想要的,我們更多地時候可能只想要一兩種事件。

那么我們先解除監控:

unmonitorEvents(document.querySelector(".diggit"))

然后可以只監控鼠標事件:

monitorEvents(document.querySelector(".diggit"),"mouse")

當然我們更常用的是只監控鼠標點擊事件:

monitorEvents(document.querySelector(".diggit"),"click")

此時點擊精靈球(你也點一下唄

現在我們可以更准確地獲取到我們想要監控的事件信息了:

 所以說還是很有用的是吧,那么學到了的同時趕緊點擊一下精靈球驗證一下如何呢


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM