Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   onload, window.open ... (https://javascript.ru/forum/misc/1998-onload-window-open.html)

НикНик 17.10.2008 11:03

onload, window.open ...
 
JavaScript не знаю, посему - второй день мучаюсь над слудующей задачей...

PHP-скрипт отдаёт в браузер страницу без контента, но с JS-скриптом для открытия двух новых окон (в каждом свой URL). Тут всё чудно работает, никаких проблем.
Код:

<html>
<head>
<script>
function newWindow() {
  window.open("http://site1.com/foo1.php");
  window.open("http://site2.com/foo2.php");
}
</script>
</head>
<body onload="newWindow()">
</body>
</html>

Каждый из указанных выше PHP-скриптов работает какое-то неопределённое время, т.е. до его окончательного завершения - окно находится в стадии загрузки.

Мне нужно:
1. Если foo1.php закончил свою работу - закрыть это окно.
2. Если foo2.php закончил свою работу - закрыть это окно и запустить другой PHP-скрипт.

Помогите пожалуйста.

Puta 17.10.2008 18:57

В твоем случае лучше использовать XMLHttpRequest.
Окошки не будут открываться.
И callback на загрузку документа повесишь чтобы
Цитата:

запустить другой PHP-скрипт

Snipe 17.10.2008 20:57

Брр. Зачем открывать и сразу закрывать?

Kolyaj 17.10.2008 23:57

Есть куча более простых способов запустить скрипт на сервере. Для этого достаточно сделать туда запрос. Например,
new Image().src = 'http://site1.com/foo1.php';

НикНик 22.10.2008 11:24

В общем чего я только не перепробовал (ваши советы есно тоже, на первом месте) - в итоге задуманное не реализовал. Ну никак я не могу понять, как JS-скрипту увидеть, что страница полностью загружена и выполнить какое-то действие на это событие :(

А сильно углубляться в JS у меня сейчас нет возможности, нужно только вышеописанное реализовать и всё.

Но всё-равно спасибо.

ЗЫ: Уж и гуглил и яндексил, но так и не нашёл ни одного примера, похожего на мою задачу...

Gvozd 22.10.2008 15:10

Цитата:

Сообщение от Kolyaj
new Image().src = 'http://site1.com/foo1.php';

дорабатываем до вида
qwe=new Image()
qwe.src = 'http://site1.com/foo1.php';
qwe.onload=function(){alert('Ку-ку');}

сработает только если по сссылке будет реальная картинка. в случае чужих страниц увы, и ах, обработать событие не получится
__________________________________________________ _________________________________
попробовал на Iframe
iframe id="frame_" src="http://ya.ru/" height="800" width="800" >
</iframe>
<script type="text/javascript">


	qwe=document.getElementById('frame_');
	//qwe.src = 'http://ya.ru/'
qwe.onload=function(){
alert('Ку-ку');
}
</script>

работает в опере, и Осле. в лисе не хочет отображать, но событие ВРОДЕ от рабатывает.
проведите серию опытов

НикНик 22.10.2008 16:22

Спасибо Gvozd.
Код действительно рабочий (и так и сяк), но только применительно к 'IFRAME'.

Посему, у меня не получается прикрутить 'getElementById' к 'window.open'. Как первому указать имя второго?

Kolyaj 22.10.2008 17:35

Цитата:

Сообщение от Gvozd
qwe=new Image().src = 'http://site1.com/foo1.php';

После этого qwe будет содержать 'http://site1.com/foo1.php', а не ссылку на Image.

Gvozd 22.10.2008 19:53

Цитата:

Сообщение от Kolyaj
Цитата:

Сообщение от Gvozd
qwe=new Image().src = 'http://site1.com/foo1.php';

После этого qwe будет содержать 'http://site1.com/foo1.php', а не ссылку на Image.

я в курсе.просто я на автомате скопировал мз вашего поста этот кусок, для вставки в сообщение
НикНик, я поравил кусок с изображением, порпобуйте

НикНик 23.10.2008 08:26

Код:

<script type="text/javascript">
  qwe = new Image();
  qwe.src = 'http://google.com';
  qwe.onload = function() {
      alert('Страница полностью загружена!');
  }
</script>

Чего-то не работает. Грузит страницу в фоне (это видно) и всё, пустой браузер.

Я уже не выдержал и перевёл всё на 'IFRAME'. Ещё раз спасибо за совет относительно этого тэга. Единственное никак не побороть отступы по краям в 5мм (всё есно сделано со всеми нужными для этого параметрами тэга 'IFRAME').


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