IE - предотвратить отображение ошибок в IE - PullRequest
5 голосов
/ 14 марта 2011

Я занимаюсь разработкой веб-приложения.Мое приложение отлично работает на Chrome и Firefox, но по какой-то причине возникает некоторые ошибки в IE.Несмотря на то, что возникает несколько ошибок, приложение все равно может работать без проблем.

Я хотел бы скрыть ошибки от конечного пользователя, поскольку в настоящее время он представлен с небольшим значком, который говорит об ошибкепроизошло.

Как мне этого добиться?

Спасибо

Ответы [ 3 ]

6 голосов
/ 14 марта 2011

Лучшее, что можно сделать на данный момент, это выяснить, где код вызывает ошибку и исправить ее.

Обновление: Ниже верно для IE8, но не для IE9или IE11 (и, вероятно, не соответствует действительности для IE10):

Поскольку это конкретно происходит в IE, вы могли бы использовать window.onerror для обработки (подавления) ихесли это ошибки времени выполнения (а не компиляции), что из вашего комментария к другому ответу звучит так, как будто они есть.По этой ссылке:

Чтобы подавить сообщение об ошибке Internet Explorer по умолчанию для события window, задайте для свойства returnValue объекта event значение true или просто верните trueв Microsoft JScript.

Событие onerror запускается для ошибок времени выполнения, но не для ошибок компиляции.Кроме того, диалоговые окна ошибок, вызываемые отладчиками сценариев, не подавляются возвратом true.Чтобы отключить отладчики сценариев, отключите отладку сценариев в Internet Explorer, выбрав Свойства обозревателя в меню Инструменты .Перейдите на вкладку Advanced и установите соответствующие флажки.

Пример:

Этот код вызывает ошибку (посколькуЯ пытаюсь разыменовать undefined):

document.getElementById('theButton').onclick = function() {
  var d;

  display(d.foo);
};

Live copy

Но если мы добавим это, ошибка будет подавлена, потому что мы сообщаем IE, что обработалиэто:

window.onerror = function() {
  // Return true to tell IE we handled it
  return true;
};

Живая копия

2 голосов
/ 14 марта 2011

Исправьте ошибки - в большинстве случаев они были бы чем-то тривиальным, что срабатывает только IE.В этих случаях исправление проблем, обнаруженных JSLint, помогает с 90% вещей: http://www.jslint.com/lint.html

2 голосов
/ 14 марта 2011

Насколько я знаю, нет никакого реального способа сделать это, потому что тогда вы будете контролировать браузер (AKA приложение), и это будет плохо. Пользователь может вручную отключить эти ошибки или посмотреть, сможете ли вы исправить свой JavaScript. Но, кроме этих двух решений, я думаю, вам не повезло.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...