IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Веб-программирование (http://www.imho.ws/forumdisplay.php?f=29)
-   -   Без вашей помощи никак, спасайте. (http://www.imho.ws/showthread.php?t=53286)

Viroman 09.03.2004 22:21

Без вашей помощи никак, спасайте.
 
Тут что то я дотукаться сам не могу, да и не умею.
Значит со страницы вызываю функцию, чтобы открылось окно.



Код:

function popup(zap)
{
var wina='left=150,top=100,toolbar=0,directories=0,menubar=0,scrollbars=1,resizable=0, status=1, width=500,height=350';
var na = 'okno';
var bannan = window.open('popup1.htm', na, wina);
var url = zap
skrit(url)
}

<a href="javascript:popup('http://www.nm.ru)">Content</a>

Вызываемая функция skrit(url) находится в конце страницы. Но вот так всё работает, всё нормально, но одно но, мне надо это на задержку поставить. И в место прямого указания на эту функцию skrit(url) я меняю это дело
на setTimeout("skrit(url)", 3000), так чтобы через 3 секунды происходило тоже самое.

Код:

function popup(zap)
{
var wina='left=150,top=100,toolbar=0,directories=0,menubar=0,scrollbars=1,resizable=0, status=1, width=500,height=350';
var na = 'okno';
var bannan = window.open('popup1.htm', na, wina);
var url = zap
setTimeout("skrit(url)", 3000)
}

<a href="javascript:popup('http://www.nm.ru')">Content</a>

Но к сожалению при таком раскладе вариабле url не удерживается на протяжении шлейфа и уже стирается при первом же закрытии } , что и ясно получается.
Вот вопрос, как мне удержать эту вариаблу url подольше. По идее передаваемый урл мне нужен как видно не сразу, а в следующей функции
skrit(url)


rontommy 09.03.2004 22:29

Viroman

Обьяви переменную до начала функции, тогда она будет глобальной для всего кода :
Код:

var url;

function popup(zap)
{
var  wina='left=150,top=100,toolbar=0,directories=0,men
ubar=0,scrollbars=1,resizable=0, status=1, width=500,height=350';
var na = 'okno';
var bannan = window.open('popup1.htm', na, wina);
url = zap;
setTimeout("skrit(url)", 3000)
}
. . .


Viroman 09.03.2004 22:43

К сожалению тогда не передаётся Url 'http://www.nm.ru', я так тоже пробовал.

RaZEr 09.03.2004 22:53

2 Viroman: А теперь коротко и ясно, для таких тупых как я, что ты хочешь сделать?

Saruman 09.03.2004 22:55

Viroman
setTimeout("skrit('"+url+"')", 3000)

Viroman 09.03.2004 22:57

2 RaZEr: Там малюсенькую хитрость хотелось сделать. Два попапа, но один чтобы открывал заранее указанную страницу, а другой попап чтобы через 3 секунды
открывался с урл указанным в ссылке <a href="javascriptopup('http://www.nm.ru')">Content</a>
Но так чтобы сперва после вызова первого попапа отчитывалось время в 3 секунды.

rontommy 09.03.2004 23:01

Saruman
Точно, я не заметил, надо подставлять строковое значение переменной url, а не строку "url".

Viroman 09.03.2004 23:09

Молодцы, спасибо вам всем большое.
ПС: Хорошо, что вы есть.
Saruman отдельное тебе огромное спасибо.

Viroman 10.03.2004 15:21

Можно я ещё вопрос задам. Нельзя ли в новосозданном окне по типу
var winda = window.open('', n, win);
winda.document.write('<html><head></head>');
сделать так, чтобы по окончании создания этого окна в нём же автоматически запускалась какая нибудь функция или это принципиально невозможно?
С новой оперой этот трюк прошёл по типу body onload, а вот с эксплорером и более старыми версиями той же оперы не хочет. Тернист он путь к учению :dance:

is_absent 10.03.2004 15:43

Viroman
можно написать скритп внутри тега head. насколько я помню, они вне зависимости от браузера запускаются до того, как отображается сама страничка

RaZEr 10.03.2004 15:53

body.onload (<body onload="myfunc();">)

Добавлено через 1 минуту:
PS: Я к тому, что ненадо гнать, все работает в IE.

Viroman 11.03.2004 01:33

2 RaZEr: Похоже я просто неправильно сделал, однако иначе не срабатывает body onload.
Вот что мне надо было дописать в конец
mywindow.document.close()

joker99 11.03.2004 01:37

Цитата:

@_is_absent:
Viroman
можно написать скритп внутри тега head. насколько я помню, они вне зависимости от браузера запускаются до того, как отображается сама страничка
Не правда

Viroman 11.03.2004 05:20

А можно ещё вопрос, есть ли возможность, как можно передать параметры в то новое сгенерированное окно?

var param = 'www.ru';
function pop(param)
{
var win='left=150,top=100,toolbar=0,directories=0,menubar=0,scrollbars=1,r esizable=0, status=1, width=500,height=350';
var n = 'track';
popokno = window.open("", n, win);
popokno.document.write("<html><head>");
popokno.document.write("<script>");
popokno.document.write("function lokalka()");
popokno.document.write("{");
popokno.document.write("window.location.href = 'http://' + param");
popokno.document.write("}");
popokno.document.write("</script>");
popokno.document.write("<body onload='lokalka();'>");
popokno.document.write("</body></html>");
popokno.document.close(); }

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

is_absent 11.03.2004 07:07

Viroman
а передавать путь в window.open не пробовал?

rontommy 11.03.2004 09:37

Viroman
А если попробовать так :
popokno.document.write("window.location.href = 'http://' + ");
// одна кавычка внутри двойных кавычек
popokno.document.write("'");
popokno.document.write(param);
// одна кавычка внутри двойных кавычек
popokno.document.write("'");

Viroman 11.03.2004 16:52

Цитата:

@_is_absent а передавать путь в window.open не пробовал?
Если бы не пробовал, я бы не написал следующего:
Цитата:

Не спрашивайте, зачем мне это надо, ведь есть нормальный способ открыть окно со страницей, но надо именно этим путём
Просто всё очень просто, я подгоняю под оперу, а то она задолбала меня своими
security attemp error, в то время как в експлорере всё пучком :)

2 rontommy: Большое спасибо, что разъяснил, чуточку доделал и пошло.
Ещё раз спасибо тебе большое, тепериче работает как часы. :yees:


Часовой пояс GMT +4, время: 20:52.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.