Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Передача данных между фреймами


Автор: Plusb 18.9.2009, 11:03
У меня возникла проблема с обменом данными между фреймами, сейчас опишу ее:

Есть 3 файла:
main.html
left.html
right.html

В файле Майне в head'е:

Код

<frameset cols="*,*">
  <frame name="left" src="left.html" />
  <frame name="right" src="right.html" />
</frameset>
<noframes></noframes>



В файле Лефте в head'е:

Код

<script language="javascript">
t = parent.right.z;
document.write("VOT:" + t);
</script>



В файле Райте в head'е:

Код

<script language="javascript">
var z = 3;
document.write("VOT:" + z);
</script>



В итоге гружу майн.штмл и получаю:
В левой фрейме: VOT:undefined
и
В правом фрейме: VOT:3

Почему так получается? я не правильно обращаюсь?
Но если не правильно то почему, если сделать так:

В файле Майне в head'е:

Код

<frameset cols="*,*">
  <frame name="left" src="left.html" />
  <frame name="right" src="right.html" />
</frameset>
<noframes></noframes>



В файле Лефте в head'е:

Код

<script language="javascript">
t = 3
document.write("VOT:" + t);
</script>



В файле Райте в head'е:

Код

<script language="javascript">
var z = parent.left.t;
document.write("VOT:" + z);
</script>



В итоге гружу майн.штмл и получаю:
В левой фрейме: VOT:3
и
В правом фрейме: VOT:3

и все хорошо!

Автор: Dobermann 18.9.2009, 11:48
<frameset cols="50%,*">
<script type="text/javascript">

Автор: Plusb 18.9.2009, 13:04
Цитата

<frameset cols="50%,*">
<script type="text/javascript">

Это не помогло( тут дело не в этом

Автор: magician7 18.9.2009, 13:45
Возможно дело в том, что сначала загружается левый фрейм, а потом правый. В момент загрузки левого и обработки скрипта, еще не существует в правом фрейме нужной вам переменной, а возможно и самого правого фрейма еще нет. Попробуйте сделать так, чтобы скрипт выполнялся после полной загрузки страницы.

Автор: Plusb 18.9.2009, 14:30
Цитата(magician7 @ 18.9.2009,  13:45)
Возможно дело в том, что сначала загружается левый фрейм, а потом правый. В момент загрузки левого и обработки скрипта, еще не существует в правом фрейме нужной вам переменной, а возможно и самого правого фрейма еще нет. Попробуйте сделать так, чтобы скрипт выполнялся после полной загрузки страницы.

Все правильно, теперь до меня дошло smile

но если у вас будет время, то напишите решение, заранее спасибо
если я тоже решу, то выложу тоже

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)