Update: Эта ошибка была подтверждена как минимум двумя другими. Даже если вы не прочитаете мой полный пост - если вы читаете это и используете JQuery 1.3.1, то прекратите использовать его, если вы полагаетесь на любые обработчики, которые вы хотите выполнить, когда DOM завершен но перед загрузкой изображений страницы.
Update2. Благодаря Tom (идентификатор пользователя 20!) для публикации ссылка на билет на трекер ошибок jQuery.
Update3 - 2009/01/28: Проблема была правильно решена (для тех, для которых возвращение к 1.2.6 не является вариантом). Для тех, кто в настоящее время использует 1.3.1 и нуждается в немедленном исправлении, вы можете прочитать принятый ответ ниже для направления. Спасибо, Джон.
Я просто обновился до JQuery 1.3.1, и мне потребовалось несколько часов, чтобы понять, что мои любимые
$(function( ) { ... }
Синтаксис теперь ожидал загрузки всей страницы (включая изображения) перед выполнением тела функции. Я наблюдал странное поведение при попытке интегрировать меню Yahoo. (К счастью, у меня были некоторые медленные изображения загрузки на моей странице, которые заставили меня осознать проблему)!
Я сделал тестовый файл, потому что понял, что происходит что-то более сложное, но у меня все еще были те же симптомы даже с этим простым файлом.
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
<script>
$(function() {
alert("Ready");
});
</script>
</head>
<body>
<img src="<PATH_TO_DYNAMIC_IMAGE>_1.jpg" />
<img src="<PATH_TO_DYNAMIC_IMAGE>_2.jpg" />
<img src="<PATH_TO_DYNAMIC_IMAGE>_3.jpg" />
<img src="<PATH_TO_DYNAMIC_IMAGE>_4.jpg" />
</body>
Различные версии JQuery имели разные результаты:
- Что происходит в версии 1.2.6, так это то, что окно предупреждения отображается мгновенно, а затем я вижу загрузку изображений за ним (ожидаемое и задокументированное поведение).
- Что происходит в версии 1.3.1, так это то, что все изображения загружаются, и только тогда будет отображаться окно предупреждения.
Что происходит! Является ли это новой функцией (я не могу представить, почему) или ошибка?
Важно: это только кажется проблемой в IE, а не firefox
Извините, у меня нет динамического файла изображения, доступного публично, чтобы другим было легче видеть это. Если вы хотите проверить это, я предлагаю использовать большой файл изображения, выбранный случайным образом из изображений Google, и очистить кеш.