В chrome использование .ready () jQuery, похоже, работает для меня.Вот моя скрипка:
http://jsfiddle.net/pWjBM/5/
Это случайное изображение, которое я выбрал, оно достаточно большое - на самом деле загрузка некоторых из моих тестов занимает очень много времени, поэтомустоит заменить на что-то немного меньше.Но конечный результат - это то, что вы хотите, я думаю: загрузка занимает некоторое время, и после загрузки появляется предупреждение, а затем появляется текстовое поле (#txt).Кажется, работает и в Firefox;не уверен насчет других браузеров.
РЕДАКТИРОВАТЬ: Ха, похоже, работает в Chrome, Firefox и Safari.Не работает в IE8.Итак ... это работает во всех реальных браузерах:)
EDIT2: После долгих хлопот комбинация Allesandro и моего собственного решения кажется работающей.Я использую .ready () для скрытого img, чтобы определить, когда изображение действительно загружается, а затем загружаю его в фон CSS.
http://jsfiddle.net/pWjBM/41/
HTML:
<div id="testdiv">
<input type="text" id="txt" style="display:none;" />
</div>
<img src="http://www.nasa.gov/sites/default/files/images/712130main_8246931247_e60f3c09fb_o.jpg" id="dummy" style="display:none;" alt="" />
Javascript:
$(function() {
$('#dummy').ready(function() {
alert('loaded');
$('#testdiv').css('background-image', 'url(http://www.nasa.gov/sites/default/files/images/712130main_8246931247_e60f3c09fb_o.jpg)');
$('#txt').show(1000);
});
});
CSS:
#testdiv {
background:#aaaaaa none no-repeat right top;
width: 400px;
height: 400px;
}
#txt{
margin-left: 180px;
margin-top: 140px;
}
ПРИМЕЧАНИЕ:Ниже приведен комментарий о том, что это не работает, потому что вы можете изменить URL-адрес изображения, и оно по-прежнему вызывает загруженное событие.На самом деле это работает в точности так, как я и ожидал, учитывая текущий код - он не проверяет, является ли URL-адрес, на который вы указываете для вашего «изображения», действительным и действительно ли изображением, все, что он делает, это вызывает событиекогда IMG будет готов и изменить фон.Предположение в коде состоит в том, что ваш URL указывает на правильное изображение, и я думаю, что дальнейшая проверка ошибок не нужна, учитывая вопрос.