SCRIPT5009: «$» не определено в IE9 - PullRequest
6 голосов
/ 19 октября 2011

У меня есть букмарклет, который загружает div в текущую страницу и помещает в нее iframe.Букмарклет работает как сон во всех браузерах, кроме IE9.Даже работает в более ранних версиях IE.

Я использую следующую структуру букмарклетов:

http://idc.anavallasuiza.com/project/bookmarklets

У кого-то еще здесь была похожая проблема (не связанная с букмарклетами):

https://forum.jquery.com/topic/retrieved-html-data-type-with-jquery-ajax-in-ie9-scripts-tags-sources-could-not-be-loaded

Пока я понимаю, что jQuery моего букмарклета не загружается должным образом в IE9.

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

Страница iFrame также загружает jQuery (без него содержимое в iframe не работает должным образом).

Я использую последнюю версию jQuery:

http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js

Я хотел бы знать, почему IE9 вызывает эти ошибки SCRIPT, когда никакой другой браузер этого не делает?Почему jQuery не загружается должным образом в IE9?

Любое понимание будет высоко ценится.

Ответы [ 2 ]

6 голосов
/ 02 марта 2012

Я только что несколько часов боролся с этой проблемой и, наконец, нашел решение, которое, я думаю, поможет вам.

Вот упрощенная версия кода, которая вызвала у меня проблемы:

$frames = $(*html_including_frames_here*);
$div = $('<div></div>');
$div.append($frames);
$('body').append($div);

** Загрузка одного или нескольких кадров в div, который НЕ находится в DOM, и ТО, загрузка этого div в DOM, вызывает все проблемы в моих случаях. Кадры не загружают JS-скрипты так, как должны, и тогда все (jQuery, JSON и т. Д.) Не определено.

Это, с другой стороны, работает:

$frames = $(*html_including_frames_here*);
$div = $('<div></div>');
$('body').append($div);
$div.append($frames);

Единственная разница здесь в том, что я сначала помещаю div в dom, а затем загружаю в него фреймы. Каким-то образом это все меняет.

1 голос
/ 04 января 2012

спасибо за ваш вопрос, у меня была такая же проблема. впервые я исправил это загрузкой jquery с jquery.com (http://code.jquery.com/jquery-1.7.1.js). тогда IE9 загружает его. может, Microsoft блокирует какой-нибудь гугл-апис? очень интересно ...

...