Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Объясните, пожалуйста, разницу описанных внутри примеров (https://javascript.ru/forum/events/8573-obyasnite-pozhalujjsta-raznicu-opisannykh-vnutri-primerov.html)

Fyntik 02.04.2010 18:37

Объясните, пожалуйста, разницу описанных внутри примеров
 
HTML код:

<html>
<head>
<script type="text/javascript" src="temp.js"></script>
</head>
<body>
<img src='img2/epicaSmall.jpg'>
</body>
</html>


temp.js:

var f1 = function()  
{
var f = document.getElementsByTagName("img")[0];
alert(f.src);
}

f1();


Не выводит ничего. (f is undefined)

Но если поменять на:

var f1 = function()  
{
var f = document.getElementsByTagName("img")[0];
alert(f.src);
}

setTimeout('f1()', 0);


,то работает. Связано ли это с тем, что <img> парсируется позднее загрузки скрипта или я в чем-то ошибаюсь, а если нет, то как решается эта проблема?

Заранее благодарен.

Aetae 02.04.2010 20:09

Всё верно,скрипт загружается раньше, чем появляется само понятие картинки. Решается выполнением нужных функция по onload документа, по onload картинки, или же простым помещением скрипта ниже нужного элемента.


Часовой пояс GMT +3, время: 01:51.