Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Передача параметров из одного фрейма в другой (https://javascript.ru/forum/events/4031-peredacha-parametrov-iz-odnogo-frejjma-v-drugojj.html)

Игорь12345 15.06.2009 22:15

Передача параметров из одного фрейма в другой
 
не могу понять... простой пример.. есть окно с двумя фреймами, пытаюсь из первого загрузить во второй другую html страничку и поменять в ней картинку.. по отдельности коды работают, а вместе - никак.. кто подскажет в чем загвоздка??

function load_1()
{
parent.main.document.location="reply.html";
parent.main.document.images[0].src="banner1.gif";
}

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

Gvozd 16.06.2009 00:46

вы пытаетесь поменять изображение, которого еще не существует
поместите вторую строку в обработчик события onload соответсвущего фрейма

Игорь12345 16.06.2009 09:54

> поместите вторую строку в обработчик события onload соответсвущего фрейма

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

Gvozd 16.06.2009 12:17

вообще-то я это и подразумевал
выставить обработчик на загружаемый фрейм из JS-кода другого, загруженного фрейма
http://javascript.ru/tutorial/events...voystvo-obekta
советую прочитать не только указанную часть статьи, а всю статью

igor12345 16.06.2009 13:59

понял, вот что получилось

function load_1()
{
parent.main.document.location="reply.html";
parent.document.getElementById('main').onLoad=func tion() {
parent.main.document.images[0].src="banner1.gif";
}

все равно не работает

igor12345 16.06.2009 14:02

function load_1()
{
parent.main.document.location="reply.html";
parent.document.getElementById('main').onLoad=func tion() {
parent.main.document.images[0].src="banner1.gif";
}
}

Riim 16.06.2009 14:05

igor12345, если ты зарегистрируешься, то сможешь редактировать свои ранее добавленные сообщения.

Gvozd 16.06.2009 14:33

внутри обработчика, вы ведете работу с областью видимости другого фрейма

igor12345 16.06.2009 15:12

я понимаю, что не правильно обращаюсь в родительский фрейм, но не пойму где ошибка. Вот коды страницы верхнего уровня

<frameset rows="*" cols="534,*" framespacing="0" frameborder="no" border="0" >
<frame src="menu.html" name="left" scrolling="No" noresize="noresize" id="left" title="leftFrame" />
<frame src="continue.html" name="main" id="main" title="mainFrame" />
</frameset>

Обращаюсь из фрейма "left" к обработчику загрузки фрейма "main":
parent.document.getElementById('main').onLoad={... }

Gvozd 16.06.2009 15:18

кстати, JS-регистрозависимый язык, и писать надо onload
а внутри него, можно обащатся к фрейму, непосредственно через window, так как window будет соответсвовать внутри обработчика только что прогруженному фрейму, как раз


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