2015-06-29 51 views
1

我想檢查是否使用JavaScript發生某些控制檯錯誤,如果它有,我自己alert()檢查是否有特定的控制檯錯誤發生/存在與javascript

錯誤將是這樣的:

00:00:34:0359 TimeEvent.COMPLETE 
    (anonymous function) @ VM17617:1 

而且算法將是這個樣子:

function checkError(console) { 
    if(console.error === "TimeEvent.COMPLETE") { 
     alert("The error is present"); 
    } 
} 

我不是很熟悉的控制檯,並沒有得到太多進一步與谷歌的研究。有人能指出我正確的方向嗎?

+0

那豈不是更好地嘗試掛接到觸發錯誤實際發生的事件? – Jan

+0

@Jan:這是我最初的計劃,但我無法弄清楚。這是事件:'try {__flash__toXML(console.error(「00:02:30:0596 TimeEvent.COMPLETE」)); } catch(e){「」+ e +「」; }「有什麼想法? – JSW189

+0

必須駐留在某個函數或方法中。你可以得到這個方法,向它注入一些東西,然後用你自己的日誌記錄覆蓋它。 – Jan

回答

0

您沒有提供有關控制檯如何以及何時發生錯誤的全部圖片。如果您自己提出錯誤,或者如果您能夠在try catch內抓住錯誤,那將是攔截這些錯誤的最佳位置。

但是,如果您無法控制如何引發這些錯誤,則應嘗試攔截控制檯的錯誤調用。我從來沒有嘗試過,但是這個SO answer解釋瞭如何攔截控制檯的log調用。知道控制檯通常有一個名爲error的函數,它類似於log函數,我相信你可以應用相同的邏輯來截獲發送到控制檯的錯誤。

如果您正在使用chrome,請參閱console documentation瞭解有關錯誤功能的更多詳細信息。我不確定是否有標準,但Internet ExplorerFirefox也支持控制檯error功能。

0

我最終通過以下方式解決了我的問題this blog post接管與JavaScript控制檯。

這是我的最終代碼:

var original = window.console 
window.console = { 
    error: function(){  

     //Gets text from error message. 
     errorText = arguments['0']; 

     if (errorText.includes('TimeEvent.COMPLETE')) { 
      //DO STUFF HERE 
     } 

     original.error.apply(original, arguments) 
    } 
} 
相關問題