2015-10-19 66 views
0

假設我有一個HTML文件。在那個文件中,我引用了兩個外部JavaScript文件。其中,一個JavaScript文件有錯誤(主要是編譯錯誤)。而且我在另一個沒有任何錯誤的JavaScript文件中寫入了onerror方法。現在當我在瀏覽器中打開HTML文件時,顯然會調用onerror。該方法中的內容將被執行。在這裏我的實際想法,我想打印其中有錯誤的JavaScript文件名在alert(-)放置在onerror另一個JavaScript文件的方法。如何獲取在JavaScript中加載的JavaScript的文件名?

如果我在alert(-)裏面放了arguments.callee聲明,那麼它是打印當前的onerror方法的內容。如果我把arguments.callee.caller,那麼它打印空。

有沒有什麼辦法可以通過編程方式找到裝載了錯誤的JavaScript文件名,特別是在JavaScript中?

+1

您可能需要查看[onerror事件的文檔](https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror) –

回答

0

這個問題在https://developer.mozilla.org/de/docs/Web/API/GlobalEventHandlers/onerror的回答很好。尤其看看這個:

funcRef是對函數的引用。當函數返回true時, 這可以防止觸發默認事件處理程序。功能 參數:

Error message (string) 
URL of the script where the error was raised (string) 
Line number where error was raised (number) 
Column number for the line where the error occurred (number) 
Error Object (object) 

這導致:

window.onerror(msg, URL, line, col, e) { 

     alert("Error in " + URL + " at " + line + "/" + col); 

} 

我建議不用於顯示腳本錯誤,但console對象使用警報。

相關問題