2016-03-30 133 views
0

我有兩個測試文件,test1.htmltest2.html。我有test1.html如下:奇怪的雙窗口。錯誤行爲

<script> 
window.onerror = function (message, file, lineNumber, columnNumber, error) { 
    console.log(message, file, lineNumber, columnNumber, error); 
}; 

asdf // Trigger error 
</script> 

其打印(如預期)

Uncaught ReferenceError: asdf is not defined file:///Users/justin/Desktop/test1.html 6 1 ReferenceError: asdf is not defined(…) 

我有test2.html如下:

<script src='test.js'></script> 

其中test.js是:

window.onerror = function (message, file, lineNumber, columnNumber, error) { 
    console.log(message, file, lineNumber, columnNumber, error); 
}; 

asdf 

其打印(未如預期)

Script error. 0 0 null 

我如何捕獲錯誤信息時,使用src='test.js'代替直列包括我的腳本?

+0

見:http://stackoverflow.com/questions/5913978/cryptic-script-error-reported-in -javascript-in-chrome-and-firefox(答案建議:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script#attr-crossorigin) –

+0

我在本地執行此操作,和'crossorigin'屬性給我錯誤'源自腳本'文件://'已被跨源資源共享策略阻止加載:無效響應。因此,'null'不允許訪問。' – Randomblue

+0

請參閱http://stackoverflow.com/questions/8456538/origin-null-is-not-allowed-by-access-control-allow-origin –

回答

0

我沒有使用window.onerror但它確實表明了同樣的錯誤:

Uncaught ReferenceError: asdf is not defined

try { 
    asdf // Trigger error 
} catch (e) { 
    function test (message, file, lineNumber, columnNumber, error){ 
     console.log(message, file, lineNumber, columnNumber, error); 
    }; 

    test(e); 
} 
+0

嘗試... catch無法捕獲回調中的錯誤。 – Randomblue

+0

使用'src ='test.js''時你不想得到相同的錯誤嗎? – Raymond

+0

我想獲得所有錯誤。 'test.js'只是一個示例 – Randomblue