mOxie не определен, но очень четко определен

Я рву на себе волосы из-за IE9/8; Я пытаюсь использовать mOxie, но он отображается как undefined, хотя он очень четко определен.

когда из другого файла я вывожу mOxie в консоль, он отлично записывает его в Chrome/IE10+, но запуск того же скрипта в IE9/8 регистрирует undefined.

Однако в IE9/8, когда я напрямую набираю «mOxie» в консоли, он правильно регистрирует объект.

http://jsfiddle.net/vxyayxy8/ — запустите в режиме IE10, и вы увидите, что загружает объект. Запустите в режиме IE9, и вы увидите, что он регистрирует undefined

Почему в IE9/8 при логировании из файла (включенного после mOxie) это undefined, но определяется в IE9/8 при прямом использовании консоли?

Имейте в виду, что он определен в Chrome и IE10+.

Чтобы проверить теорию моего ответа ниже, в IE11, но в режиме документа IE9, выполните console.log({}) -- я получаю undefined, что соответствует вопросу и ответу. Можете ли вы воспроизвести это?


person ndugger    schedule 02.02.2015    source источник
comment
Да, я с @BenjaminGruenbaum, учитывая, что ошибка проявляется, просто включив файл, который вам нужен, чтобы отправить ошибку на Github - мы ничего не можем сделать.   -  person Dan Smith    schedule 02.02.2015
comment
Я не могу воспроизвести проблему. Я открыл в IE 11 и прошел через все режимы документов между 11 и 8. Объект каждый раз регистрировался. Я также тестировал в установленной версии IE 9, и результаты были такими же — объект был зарегистрирован.   -  person Sampson    schedule 02.02.2015
comment
@Loktar У этой конкретной скрипки не должно быть проблем в IE 9. Возможно, вы не сможете создать скрипку в IE 9, но обычно вы можете протестировать скрипку в IE 9. до общеприемлемой степени.   -  person Sampson    schedule 02.02.2015
comment
@JonathanSampson Я написал скрипку в IE9 и не могу получить результаты, которые вы получите. К счастью, я решил свою проблему, которая привела к фейспалму.   -  person ndugger    schedule 02.02.2015


Ответы (1)


Ответ, приведенный ниже, по-прежнему актуален, но, по-видимому, это произошло из-за ошибки IE, которая, как я теперь уверен, была исправлена, поэтому я устанавливаю обновления и надеюсь на лучшее. Спасибо за помощь, ребята.

Я обнаружил, что выполнение console.log в режиме документа IE8/9 (да, инструменты разработки открыты) приводит к undefined.

Почему они регистрируют объект как неопределенный, мне непонятно, но исправление заключается в использовании console.dir, что приводит к правильной регистрации объекта в консоли.

mOxie никогда не был undefined, он просто регистрировался как таковой из-за причудливой реализации консоли IE.

Хотя я получаю заявления о том, что проблема не может быть воспроизведена, я все равно могу получить те же результаты, каждый раз, когда я проверяю ее. http://jsfiddle.net/vxyayxy8/1/ — показывает, как журнал возвращает значение undefined, vs dir, который возвращает объект.

asdf

person ndugger    schedule 02.02.2015
comment
Это не может быть ответом; console.log и console.dir не определяют действительность ссылки. Вы либо передаете определенное значение, либо неопределенное значение. Какой метод вы передаете, здесь не имеет значения. Пожалуйста, поделитесь кодом, который вы использовали, чтобы прийти к такому выводу. Примечание. Я работаю в команде Internet Explorer. - person Sampson; 02.02.2015
comment
@JonathanSampson, видя, что вы все равно не можете воспроизвести мою проблему, вам будет бесполезно ее видеть, но я сделаю новую скрипку, представляющую разницу. - person ndugger; 02.02.2015
comment
Я хотел бы помочь определить причину этой проблемы; но, учитывая детерминированную природу компьютеров и JavaScript, опубликованное вами решение невозможно. Я искренне не имею в виду неуважение, но console.log просто не вернет undefined для действительной ссылки на объект. - person Sampson; 02.02.2015
comment
@JonathanSampson Ну, я не вру, так что либо ты ошибаешься, мой компьютер действительно банан, либо я застрял в сумеречной зоне. - person ndugger; 02.02.2015
comment
Ник, я не обвиняю тебя во лжи, и я определенно не ошибаюсь в том, что утверждаю. Я думаю, что мы немного запутались в надежности вашего теста. Сможете ли вы записать свое окно IE и выполнить тест? Вот что я вижу. - person Sampson; 02.02.2015
comment
Спасибо; похоже, вы не тестируете в IE 8 или IE 9, а вместо этого переключаете режимы документа. Можете ли вы также войти в typeof mOxie и посмотреть, что вы получите? Кроме того, из панели инструментов ваших инструментов разработчика я вижу, что у вас нет всех последних обновлений IE. Можете ли вы запустить Центр обновления Windows, установить все обновления и посмотреть, сохраняется ли эта проблема для вас? - person Sampson; 02.02.2015
comment
@JonathanSampson возвращает "object", так что он явно существует, но моя консоль по-прежнему ведет себя так, как вы говорите, невозможно. Это ошибка IE? - person ndugger; 02.02.2015
comment
Я не могу воспроизвести проблему со своей стороны в IE 11 (но у меня есть все обновления). Возможно, это была ошибка в режимах документов, которая позже была исправлена. Я буду исследовать дальше. Но, как я уже говорил ранее, режимы документов — не самый подходящий способ проверить, как устаревшие версии IE поведут себя в подобном вопросе. - person Sampson; 02.02.2015
comment
@JonathanSampson, мой IE обновлен и автоматически устанавливает обновления. Если вы в конце концов придумаете объяснение, мне будет более чем интересно выслушать вас. Спасибо за помощь. - person ndugger; 02.02.2015
comment
@NickDugger Мы отправили обновления для Internet Explorer, которые изменили дизайн инструментов разработчика; если у вас все еще есть инструменты разработчика вертикально и слева, вам нужно установить больше обновлений. Пожалуйста, проверьте Центр обновления Windows еще раз. Я поищу с нашей стороны ошибку в режимах документов, которая могла быть устранена в одном из этих более поздних обновлений. - person Sampson; 02.02.2015
comment
@JonathanSampson о, я не знал (я стараюсь избегать IE ... потому что, ну, я уверен, что вы знаете все причины на свете, лол). Я проверю обновления. - person ndugger; 02.02.2015
comment
@NickDugger Я определенно знаю, почему веб-разработчики недовольны IE (я был веб-разработчиком 17 лет, прежде чем присоединиться к команде IE) :) Однако мы собираемся изменить все это с помощью Project Spartan;) - person Sampson; 02.02.2015
comment
@JonathanSampson Эй, когда-то давно я был фанатом IE. Я более чем готов дать вам, ребята, шанс побороться! - person ndugger; 02.02.2015
comment
@NickDugger Я обнаружил ошибку инструментов разработчика примерно 5 месяцев назад, которая, по-видимому, связана с проблемой, которую вы видите. Как только вы установите все последние обновления, я подозреваю, что ваша проблема будет решена. Пожалуйста, дайте мне знать, если это не так, и я решу проблему внутри компании. Спасибо за помощь в уточнении деталей по этому поводу! - person Sampson; 02.02.2015
comment
Я должен извиниться и за то, что раньше; Я был неправ. Я не учел тот факт, что мы могли ввести регрессию в наши инструменты разработчика. Спасибо за ваше терпение и помощь. - person Sampson; 02.02.2015
comment
@JonathanSampson Нет, чувак, спасибо, что лично нашел время, чтобы помочь решить проблему, которая, по-видимому, уже была исправлена. - person ndugger; 02.02.2015
comment
@JonathanSampson снова восстанавливает веру в IE. Молодец, сэр! - person Sterling Archer; 02.02.2015