Что означает "неопределенная ошибка" в IE?

Я получаю unspecified error при чтении document.namespaces в IE8.

Я не могу воспроизвести проблему на отдельной странице, мой фрагмент:

function addNamespace(key, value) {
  try {
    $("html").attr(key, value);
    if (document.namespaces &&  // This throws the error
      !document.namespaces[key]) {
      document.namespaces.add(key, value);
    }
  } catch (e) {
    alert("Error: " + e);
  }
};

Не обращайте внимания прямо сейчас, почему я пытаюсь добавить пространство имен во время выполнения (это связано с Facebook Как не работает должным образом... см. этот комментарий - Facebook, как кнопка, показывающая в Firefox, но не отображается в IE).

Мой вопрос прост - на каких условиях происходит unspecified error?

Ответ 1

Неисправные ошибки, похоже, возникают, когда что-то (обычно значение) не установлено или не инициализировано правильно, что браузер пытается использовать. Я видел много неуказанных ошибок из кода Ajax, пытающихся получить доступ к чему-либо (обычно из DOM) до того, как страница закончила загрузку (даже если страница, похоже, уже загружена)...

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

Ответ 2

По-моему, эта ошибка в IE очень похожа на эту обычную в chrome

Uncaught SyntaxError: Unexpected token <

Для тех, кто сталкивается с этим при использовании polyfills для IE.

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