Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Пустить родителя по адресу и прочитать полученный код
 
 автор: ZuArt   (10.05.2007 в 12:50)   письмо автору
 
 

Как из дочернего окна "послать" родительское по определенному URL-у известно...
opener.location=.... или может parent.location=... - какой правильнее - вопрос....

но вот как после этого дождаться получения родителем страницы и обратиться к этой странице из дочернего - вот в чем основной вопрос!!!

   
 
 автор: mesos   (10.05.2007 в 12:56)   письмо автору
 
   для: ZuArt   (10.05.2007 в 12:50)
 

Как вариант, думаю попробовать:

window.opener.onload = Ваша функция

   
 
 автор: ZuArt   (10.05.2007 в 13:26)   письмо автору
 
   для: mesos   (10.05.2007 в 12:56)
 

не проходит... да и в принципе, наверное, не должно... т.к. тут получается, что обработчик в дочернем (другом) окне относительно родителя =(((...
+ основная проблема именно в том, чтобы считать код родительского окна из дочернего - как ЭТО сделать???

   
 
 автор: mesos   (10.05.2007 в 14:13)   письмо автору
 
   для: ZuArt   (10.05.2007 в 13:26)
 

Немного не понял про код.
Если вам нужен html родителя, то это:

window.opener.document.body.innerHTML

Если нужно обратиться к JS-функции в родительском окне, то так (например там есть функция test()):

window.opener.test();

А onload действительно не выходит задать... Жаль =(

   
 
 автор: CNT   (10.05.2007 в 15:09)   письмо автору
 
   для: ZuArt   (10.05.2007 в 12:50)
 

Загружая что-либо в родительское окно, необходимо убедиться, что родительское окно существует (что его не закрыли).
Загружая в родительское окно "свой" файл (т.е. файл с того же домена, что и ранее был в родительском), вполне можно включить setTimeout, который будет периодически запускать функцию, проверяющую, стал ли self.opener.location.href равен абсолютному URL загружаемого файла. Разумеется, при каждом сравнении необходимо опять же убеждаться в том, что родительское окно не закрыли.
Понятное дело, что в случае загрузки "чужого" файла, всё это работать не будет.

Код в дочернем окне будет приблизительно такой:
<a href="#" onclick="openInOpener ('http://mydomen.com/newindex.html'); return false">Загрузить в родительское окно новый URL</a>
<hr>
<div id="oLoad" style="visibility: hidden">Идет загрузка</div>

<script>
var globalURL;
function openInOpener (url)
{
document.getElementById ('oLoad').style.visibility = 'visible';
if (self.opener && !self.opener.closed)
   {
   globalURL = url;
   self.opener.location = url;
   setTimeout (testLoad, 200);
   }
else document.getElementById ('oLoad').innerHTML = 'Не могу загрузить - родительское окно закрыли';
}

function testLoad ()
{
if (self.opener && !self.opener.closed)
   {
   if (self.opener.location.href == globalURL)
      {
      document.getElementById ('oLoad').innerHTML += '.';
      setTimeout (testLoad, 200);
      return;
      }
   else document.getElementById ('oLoad').innerHTML = 'В родительское окно загружен файл ' + globalURL;
   }
else document.getElementById ('oLoad').innerHTML = 'Родительское окно закрыли';
}
</script>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования