2012-03-02 3 views
3

У меня есть простая HTML-страница с небольшим JavaScript. JavaScript запускает onLoad в теле. Тело также имеет фоновое изображение. JavaScript запускается перед загрузкой фонового изображения. Есть ли способ заставить тело onLoad ждать загрузки фонового изображения тела?HTML Background Image OnLoad

<body background="http://xxx.com/xxx.jpeg" id="myBody" onload="pageLoaded()"> 
+1

Использования window.onload на месте body.onload, как упомянуто здесь: http://stackoverflow.com/questions/1033398/execute-javascript-when-page-has-fully-loaded –

ответ

5

Если вы хотите, чтобы убедиться, что скрипт запускается после загрузки всех изображений, а затем использовать

$(window).load(function() { 
//....................... 
}); 

Это событие, только огонь, как только все скрипты, CSS, JS, изображения были нагрузки, в отличие от $(document).ready();

+0

Окно вместо этого ... – tkone

1

Вы пытались использовать JQuery? http://api.jquery.com/ready/

<script> 
$(document).ready(pageLoaded) 
</script> 
+0

Я думаю, вы хотите '$ (document) .load (pageLoaded); 'http://api.jquery.com/load-event/. Это добавляет функцию к событию, которое происходит при загрузке изображений и других элементов на странице. – dangerChihuahua007

2

Вы можете попробовать с

jQuery(window).load(function() { 
    //your code here 
}); 

jQuery(document).ready(function() { 
    //your code here 
}); 

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

https://github.com/alexanderdickson/waitForImages

Вы можете сделать вызов функции JQuery, как:

jQuery('body').waitForImages(function() { 
    //your code here 
}); 

Надеется, что это помогает вам :)

+0

Вам нужно включить опцию 'waitForAll' для плагина, чтобы рассмотреть фоновые изображения. – alex