Предупреждение не вызвано, потому что ваша функция обработчика ошибок не была успешно определена из-за вашей ошибки Javascript :-) Этот блок кода не может быть проанализирован правильно, поэтому он не запущен.
Настройте это так:
<script>
$(function() {
window.onerror = function() {
// ...
};
});
</script>
Если он в своем собственном теге script, то все будет в порядке. Теперь вы можете пересмотреть возможность задержки определения вашего обработчика ошибок до «готовой» обработки событий, поскольку у вас могут быть ошибки до того, как эта точка будет достигнута.
[edit] Хорошо, вот полный пример, и он прекрасно работает для меня:
<html>
<head>
<script>
window.onerror = function() {
alert("OH NO THERE HAS BEEN AN ERROR!");
};
</script>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js' type='text/javascript'></script>
<script>
$(function() {
here is some bogus stuff that will cause Javascript parse errors.
});
</script>
</head>
<body>
<p>Hello world.</p>
</body>
</html>