Подавить «Готово, но с ошибками на странице» в IE

0

У меня есть веб-сайт с использованием большого количества jQuery и JavaScript, который создает сообщение "Готово, но с ошибками на странице" в нижнем колонтитуле IE. Все на сайте работает отлично, поэтому я не хочу тратить время на устранение точной ошибки. Все, что я хотел бы сделать, это подавить сообщение "Готово, но с ошибками на странице", чтобы клиенты не волновались.

Я пробовал следующее в верхней части страницы без успеха:

window.onerror = function() {return true;}
  • 22
    Исправьте ошибку ..
  • 4
    «Все на сайте работает отлично» - нет, нет.
Показать ещё 8 комментариев
Теги:
error-handling
internet-explorer

5 ответов

7
Лучший ответ

Вы не можете запретить браузеру сообщать пользователям о наличии ошибок на странице. Это будет дыра в безопасности, и вы на самом деле не имеете права. У вас нет другого выбора, кроме как попытаться исправить его или просмотреть сообщение.

Означает ли это, что вы должны попытаться исправить ошибку? Ну, видя, как вы не можете его подавить, и вы правы, думая, что пользователи не получат удовольствие от сообщения, и что есть тонны отличных инструментов для отладки, на самом деле нет причин не делать этого.

Прислушайтесь к предупреждениям, которые ваши инструменты дают вам, я слышал на улицах, что люди, которые их написали, были довольно умными куки.: D

  • 0
    Мне это не нравится, но я полагаю, вы правы.
3

Вы пытались использовать Firebug в Firefox, чтобы помочь вам узнать, что такое ошибка?

Firebug - отличный инструмент javascript, который дает намного больше информации о причине ошибок JavaScript.

  • 4
    Это хорошая идея, но это может быть ошибка только для IE. Инструмент для разработчиков IE8 сносно полезен.
  • 0
    Если это только для IE, используйте Firebug Lite.
0

Объект Javascript Error содержит разные поля для разных браузеров:

в IE у вас есть доступ к Error.name, Error.message, Error.number и Error.description.

в FF у вас есть доступ к Error.name, Error.message, Error.fileName, Error.lineNumber и Error.stack(трассировка стека, показывает "@" + Error.Filename + ":" + Error.lineNumber).

try {
  // all your buggy code
} catch (e) {
  // in FF you can add e.lineNumber or e.stack
  alert("Error: " + e.name + " - " + e.message); 
}

вы можете использовать это в IE, но, к сожалению, вы не можете отследить его до номера строки. Чтобы сузить код нарушения в IE, добавьте в свой код несколько "маркеров":

var myObject = new Object();
myObject.prototype.myFunction = function() {
  alert('start');
  // some code here
  alert('1');
  // some more code here
  alert('2');
  // some more code here
  alert('3');
  // some more code here
  alert('done');
} 

когда загружается ваш script, обратите внимание на значок "Готово с ошибками" при отключении предупреждений. Затем вы можете сузить место, где в коде возникает ошибка (т.е. "Ошибка выдается после" 2 ", но до" 3 "..." ). Это определенно утомительный процесс, но он пробовал и правда, и, что более важно, оставит ваш код без ошибок.

0

Чтобы отладить ошибку, вы должны использовать средства разработки IE.

0

Код правильно или используйте уродливые хаки

try{
 // all your buggy code
} catch(e){
 // please don't do this - instead fix your code.
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню