JavaScript ошибка IE: неожиданный вызов к методу или доступу свойства

У меня есть следующий код, и он работает (как обычно), во всем кроме IE. Это дает мне неожиданный вызов методу или доступу свойства в JQuery, и я понятия не имею, как отладить его. Я использовал панель инструментов разработчика IE, которая бесполезна для этой ошибки и просто дает мне строку № 12 (в сценарии jQuery).

Любая справка является v, очень ценившим:


Вот плагин истории: http://plugins.jquery.com/project/history

И вот демонстрация, за которой я следовал: http://plugins.jquery.com/project/history

Все еще возврат window.location к document.location, кажется, не имеет значение

Я потерян на этом. То, когда я изменяю тег, я звоню в него, действительно отправляет так, он работает, но в IE все повреждается дизайн, и следующие ссылки, на которые я нажимаю, не отправляют. Действительно странный!! Хорошо работает в Firefox, опере, и т.д.

21
задан PGSystemTester 4 June 2018 в 05:17
поделиться

3 ответа

Я немного удивлен, что IE жалуется на это, но это хорошо: в getPage отсутствует объявление для хэша (например, , поместите var перед первым использованием).

В остальных случаях он предположительно создает неявный глобальный объект (свойство объекта window под названием hash ] ), что, конечно, Плохая вещь (tm), но, насколько я понимаю, это правильно в соответствии со спецификацией (соответствующие разделы: 8.7 ["Тип ссылки "] и 10.1 .4 ["Scope Chain and Id Entifier Resolution »]).

И все же удивленный IE жалуется на это. Это должно быть связано с областью, в которой jQuery вызывает ваш обработчик кликов.

8
ответ дан 29 November 2019 в 21:58
поделиться

Я не могу найти метод истории в jQuery API , поэтому я предполагаю, что это либо:

  • Сторонний плагин.
  • Косвенный вызов старого доброго объекта window.history .
  • Созданный вами пользовательский объект.

Я предполагаю, что IE (известный тем, что загрязняет глобальную область видимости, делая все глобальным) считает, что любая ссылка на history на самом деле означает window.history , и это сбивает с толку. Если это настраиваемый объект, попробуйте переименовать его в myHistory или что-нибудь еще.

0
ответ дан 29 November 2019 в 21:58
поделиться

Я думаю, мистер Краудер что-то понимает. Насколько я могу судить из источника jQuery, если возвращенный вами фрагмент HTML не содержит тегов