有沒有辦法從Internet Explorer 7/8錯誤對象檢索行號?從Internet Explorer錯誤對象檢索行號
我只知道.message,.description和.number屬性。
我已經搜索了一下週圍,發現在.STACK的MSDN文章(http://msdn.microsoft.com/en-us/library/hh699850(v=vs.94).aspx),但即使是使用自己的示例代碼不返回行號:
有沒有辦法從Internet Explorer 7/8錯誤對象檢索行號?從Internet Explorer錯誤對象檢索行號
我只知道.message,.description和.number屬性。
我已經搜索了一下週圍,發現在.STACK的MSDN文章(http://msdn.microsoft.com/en-us/library/hh699850(v=vs.94).aspx),但即使是使用自己的示例代碼不返回行號:
我周圍挖多一些,發現可以使用window.onerror在IE中檢索行號。這不是從錯誤的對象本身,但它是一個不錯的解決方法:
function BadFunction(){
This.badcode.willnot.work = 1000
}
function ForceError(msg, url, lno) {
alert("Error Occurred! Handled by Generic Error Handler" + "\n" +
"Error: " + msg + "\n" + "URL: " + url + "\n" +
"Line Number: " + lno);
return true;
}
window.onerror = ForceError;
這種方法要求誤差泡到窗口。如果你的代碼中有try/catch,你將需要重新拋出錯誤,以便它可以冒泡。
在研究此問題的解決方案時,我也遇到了GitHub上的StackTraceJS。他們的堆棧跟蹤腳本在除Internet Explorer之外的所有瀏覽器上都能很好地工作。一個偉大的運行時調試器,如果你想記錄客戶端瀏覽器上產生的錯誤。
如何在try..catch中重新拋出錯誤!你能舉個例子嗎? – deepakb
確實[這個問題](http://stackoverflow.com/questions/1506593/need-to-find-actual-location-of-line-char-in-internet-explorer-script-錯誤)幫助? –
不幸的是,我沒有爲開發目的設置調試器,而是一旦代碼生產。我們希望能夠打開JS錯誤日誌記錄並存儲行號,而不僅僅是錯誤的描述。 –
您應該編輯您的問題以添加該信息,因爲它會在可能的答案中產生差異。 –