|
|
|
| Как из дочернего окна "послать" родительское по определенному URL-у известно...
opener.location=.... или может parent.location=... - какой правильнее - вопрос....
но вот как после этого дождаться получения родителем страницы и обратиться к этой странице из дочернего - вот в чем основной вопрос!!! | |
|
|
|
|
|
|
|
для: ZuArt
(10.05.2007 в 12:50)
| | Как вариант, думаю попробовать:
window.opener.onload = Ваша функция
|
| |
|
|
|
|
|
|
|
для: mesos
(10.05.2007 в 12:56)
| | не проходит... да и в принципе, наверное, не должно... т.к. тут получается, что обработчик в дочернем (другом) окне относительно родителя =(((...
+ основная проблема именно в том, чтобы считать код родительского окна из дочернего - как ЭТО сделать??? | |
|
|
|
|
|
|
|
для: ZuArt
(10.05.2007 в 13:26)
| | Немного не понял про код.
Если вам нужен html родителя, то это:
window.opener.document.body.innerHTML
|
Если нужно обратиться к JS-функции в родительском окне, то так (например там есть функция test()):
А onload действительно не выходит задать... Жаль =( | |
|
|
|
|
|
|
|
для: 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>
|
| |
|
|
|