Forum Webscript.Ru
Программирование => JavaScript & JScript => Тема начата: lalex от 07 Октября 2002, 14:22:49
-
Есть документ с событием, например:
onclick="javascript:wins=window.open(\'users.cgi\',\'\');wins.document.forms[0].user.value=\'vasya\';"
Когда наступает это событие, открывается нужное окно, но из-за того что оно открывается не мгновенно, то операция wins.document.forms[0].user.value=\'vasya\' выдает ошибку:
wins.document.forms.0.user - не является объектом.
Если сначало открыть окно и после его открытия выполнить wins.document.forms[0].user.value=\'vasya\', то все работает.
Подскажите, как быть?
-
users.cgi - твоя?
тогда напиши \'users.cgi?name=vasya\'
а в скрипте предусмотри заполнение этого поля
или setTimeout("wins.document.forms[0].user.value=\'vasya\'",3000)
но это более криво
-
Лень проверять, но еще есть подозрение, что wins\'у, может быть, можно onload ява-скриптом присобачить.
-
PilotV каким из?
JS - не выйдет по той же причине
CGI - да , но родителя может тоже уже не оказаться в живых :)
-
через cgi мне неудобно передавать, поэтому я тут нагенерил:
родитель:
...........
onclick="java script:add(\'vasya\')";
...............
дочка:
.......
............
Есть какие-нить предложения по усовершенствованию?
-
Не, у меня была идея такого плана:
AAA
Но провалилась...
-
lalex - ты пробовал проверять, ?:)))
while (1) - подвесит ИЕ наглухо.
Потому как ИЕ не многозадачное ... оно висит пока скрипт работает
И вообще - переучивайся уже под Виндовз програмить, а то привычки у тебя DOS-овские ;)
PilotV ты не понял! - главное там цикл (но лучше setTimeout конечно) и if (wins.onload)
без этого не имеет смысла - т.е как у тебя
-
Я писал последний свой мессадж, еще не видя того варианта, - я просто свой описал. Но он не работает.
-
Oak ты прав, в том что подвешивает, но не наглухо.
Через некоторое время ~10сек. окно прогружается и ИЕ передает параметр.
Осталось setTimeout подобрать.
-
через cgi мне неудобно передавать
ИМХО: если не удобно использовать CGI, то почему бы не использовать JS для разбора входных параметров? В users.htm встраиваешь маленькую функцию на JS, которая после onload обеспечивает разбор входных аргументов.
А еще можно один способ - через буфер: ненадежно, но забавно! ;)