Показать сообщение отдельно
  #1 (permalink)  
Старый 25.10.2010, 18:38
Новичок на форуме
Отправить личное сообщение для freedon Посмотреть профиль Найти все сообщения от freedon
 
Регистрация: 25.10.2010
Сообщений: 5

Передача параметров javascript между iframe и документом.
Здравствуйте.
Бьюсь над следующей задачей:
1.Есть html документ.
2.Из него вызывается iframe
В iframe через php echo создаются javascript'ы, в которых используется значение php переменных.
3. Затем в основном html документе вызывается javascript, который использует параметры определенные в javascript'ах что создавались в iframe.
Для чего это всё надо - надо чтобы в html документе отображался через javascript текст задаваемый динамически, но чтобы этого текста не было в самом html теле документа.
Минимальный html:
---------------------------------------
<html>
<head>
</head>
<body>
текст-текст-текст
<iframe width='410' height='350' id="inli" name="inli" src='initialization.php'></iframe>
<script type="text/javascript" src="javascript.js"></script>
текст-текст-текст
</body>
</html>
---------------------------------------
initialization.php
---------------------------------------
<?
$stroka="ааабббвввгггдддеее"; //строка к-рая реально определяется //динамически и должна выводится с некой модификацией (в данном //случае - выкидывание символов ббб и ддд)через javascript в главном //html
$l1 = explode('ббб',$stroka);
$l2 = explode('ддд',$l1[1]);
echo '<script type="text/javascript">';
echo '$par1 = \'';
echo $l1[0]; // присвоение $par1 значения php переменной $l1[0] //(ааа)
echo '\';';
echo '</script>';
echo '<script type="text/javascript">';
echo '$par2 = \'';
echo $l2[0]; // присвоение $par2 значения php переменной $l2[0] //(вввггг)
echo '\';';
echo '</script>';
echo '<script type="text/javascript">';
echo '$par3 = \'';
echo $l2[1]; // присвоение $par3 значения php переменной $l2[1] //(еее)
echo '\';';
echo '</script>';
?>
---------------------------------------
javascript.js
---------------------------------------
var $par1 = parent.initialization.$par1;
var $par2 = parent.initialization.$par2;
var $par3 = parent.initialization.$par3;
document.write("VOT PAR1:" + $par1);
document.write("VOT PAR2:" + $par2);
document.write("VOT PAR3:" + $par3);
---------------------------------------
Пробовал по разному - если использовать initialization.php в html через php вставку с include - работает идеально, но естественно на html странице виден код, к-рый не надо чтоб там был. Для этого и юзаем iframe.
Если юзать в такой конфигурации как описано сейчас(а это нужная конфигурация) - выдаёт в основном html "VOT PAR1:" + undefined, а иногда (1 к 10) и выдаёт как надо. Т.е. код вообщем-то рабочий, но видимо как-то надо реорганизовать процесс очередности загрузки скриптов.
Пробовал делать по вот этому примеру - Помогите разобраться с передачей данных между фреймами
В ie делает что надо, но т.к. отложенный document.write получается, то он стирает весь документ ессно.
В firefox раз через раз то, делает как в ie, то не выводит результат
javascript.js вообще.
Помогите, кто может, разобраться. Просто устал уже сам биться (javascript толком не знаю, просто понадобилось его использовать).
Тот кто поможет разобраться - может смело рассчитывать на шоколадку/пиво кому как по душе в виде WM.
Спасибо.
Ответить с цитированием