2013-01-04 44 views
13

我使用了一些非常大且令人困惑的JavaScript文件,這些文件並沒有寫入。有時候會有警報出現,但我不知道它來自哪裏。有什麼方法可以獲取警報框的來源?

您可以搜索警報中包含的文本的所有文件,但如果該文本是動態的,則不起作用。

有沒有辦法設置斷點來攔截警報?

+1

搜索文件不是太難尤其是對警報。它真的沒有用過很多(主要是因爲JavaScript警報很煩人)。如果你在linux上,使用grep。如果你在Mac上,使用grep。如果您在Windows上,請安裝Linux。 –

回答

30

在你的HTML的最頂部:

window.alert = function() { 
    debugger; 
} 

debugger是調用任何調試功能提供的聲明。開發人員工具處於打開狀態時,只要調用alert,就會自動創建一個斷點。然後,您可以檢查調用堆棧以查看所謂的定製alert函數。

+1

這很好,豎起大拇指 – kidwon

+0

夥計,這很好,不知道這個... –

3

它可能會對您有所幫助,但您可以覆蓋alert函數以隨心所欲地執行任何操作。例如,您可以讓它將消息記錄到控制檯,而不是提醒框。

window.alert = function(msg) { 
    console.log(msg); 
} 
alert('test'); 
3

打開Chrome推F12鍵,然後轉到Sources。 然後選擇一個腳本文件Ctrl+F並搜索警報。 你可以把斷點放在任何你想要的線上

3

我同意布賴恩格拉茨,但爲了獲得更多的細節(行號),你可能會嘗試拋出一個錯誤,當提醒某些東西並在控制檯上輸出錯誤。這樣,控制檯會將您指向警報函數被調用的正確行號。

把這個片段在文檔的頂部,並給它一個嘗試:

var originalAlert = window.alert; 
window.alert = function(){ 
    try{ 
     throw new Error('alert was called'); 
    } catch(e){ 
     console.warn(e); 
    } 
    return originalAlert.apply(window, arguments); 
} 
相關問題