在開發(fā)中,偶爾會遇到類似這樣的問題:頁面上的一個DOM元素被改了屬性,但是我們卻不知道是哪個腳本更改的。有的同學(xué)會說,可以使用源代碼搜索的辦法。的確,對于一個相對簡單的頁面,這個方法時常奏效。但是,對于構(gòu)成相對復(fù)雜的頁面(比如頁面嵌入很多腳本文件和片段、使用了大段面向?qū)ο蟮膶崿F(xiàn)、隱藏了實現(xiàn)的代碼),可能找起來就不那么順利了。
在Javascript調(diào)試中,我們經(jīng)常會使用到斷點調(diào)試。其實,在DOM結(jié)構(gòu)的調(diào)試中,我們也可以使用斷點方法,這就是DOM Breakpoint(DOM斷點)。
具體的使用方法:
1. 在Chrome瀏覽器中,打開開發(fā)者工具,先選中一個頁面元素,然后點擊鼠標右鍵,依次點擊菜單中的”Break on …”——勾選“Attributes modifications”。刷新頁面,當該元素的屬性發(fā)生變化時,就會暫停腳本的執(zhí)行,并且定位到改變發(fā)生的地方。
2. 在安裝了firebug 的Firefox 瀏覽器中,打開firebug,切換到“HTML”選項卡,選中需要監(jiān)視的DOM元素,鼠標右鍵,勾選菜單中的“在屬性改變時中斷”。這樣就成功添加了一個HTML 斷點。刷新頁面后,firebug 也會幫助我們定位到更改該元素屬性的代碼。
除了可以監(jiān)視DOM元素本身的屬性變化,Chrome 和 Firebug 還可以監(jiān)視其子元素的變化,以及何時元素被刪除。