2016-03-30 3 views
0

У меня есть два тестовых файла, test1.html и test2.html. У меня test1.html следующим образом:странное поведение double window.onerror

<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» дает мне ошибку «Script from origin» file: // 'был заблокирован при загрузке политикой совместного использования ресурсов Cross-Origin: неверный ответ. Следовательно, исходное значение «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

попробовать ... поймать не поймать ошибки в обратных вызовах. – Randomblue

+0

Разве вы не хотели получать ту же ошибку при использовании 'src = 'test.js''? – Raymond

+0

Я хочу получить все ошибки. 'test.js' был просто примером для демонстрации – Randomblue

Смежные вопросы