URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 3767
[ Назад ]

Исходное сообщение
"js"

Отправлено skomoroh , 14-Дек-05 14:05 
есть пару вопросов:

как обратится к своей функиции( обьекту, переменной ) в другом окне? с фреймами или предопределенными обьектами знаю как, а с окнами и своими обьектами по аналоги не работает ...

если нельзя, то тогда как реализовать:

есть переменная, точнее обьект( var win = window.open( ... ); ) как ее передать в другое окно( нужно для win.document....value = "***" )?

как из функции js передать на вход *.php файла массив или длинную строку? в GET не влезает, а POST'ом внутри внутри: <script> funсtion send(){ тут }</script> не знаю как отправить ...


видел давно красивую картинку с иерархией обьектов js, может подскажете где есть?


Содержание

Сообщения в этом обсуждении
"js"
Отправлено mephius , 14-Дек-05 14:57 
>есть пару вопросов:
>
>как обратится к своей функиции( обьекту, переменной ) в другом окне? с
>фреймами или предопределенными обьектами знаю как, а с окнами и своими
>обьектами по аналоги не работает ...
>
>если нельзя, то тогда как реализовать:
>
>есть переменная, точнее обьект( var win = window.open( ... ); ) как
>ее передать в другое окно( нужно для win.document....value = "***" )?
>

делаем так:
<script>
var win=window.open('2.html');
win.myvar=3;
win.showmyvar();
</script>

файл 2.html выглядит примерно так:

<script>
function showmyvar(){
    alert(myvar);
}
</script>


получаем создание переменной в другом окне и вызов функции другого окна.

>как из функции js передать на вход *.php файла массив или длинную строку? в GET не влезает, а POST'ом внутри внутри: <script> funсtion send(){ тут }</script> не знаю как отправить ...

пост можно отправить с помощью, например, XMLHTTPRequest (http://www.google.com/search?hl=en&q=XMLHTTPRequest&btnG=Goo...)


"js"
Отправлено skomoroh , 14-Дек-05 17:15 
понятно, пасиба разобрался, я так пробовал, только я сразу после открытия  окна вызывал, когда еще самого окна не было( не успевает открыться??? ), думал что так вапче нельзя, я стормозил ...

хотя, сейчас тоже правильно работает, только если окно открыто, а сразу после открытия не работает ... нуна F5 нажимать ...
тут надо таймаут ставить или проверку? как это сделать?

или данные функцией из открывающегося окна по аналогии забирать?
var win = window.opener.win;
var arg = win.arg;


еще вопрос:
есть file.html файл, как в этом файле при вызове функции window.open('file.html'), вставить в середину еще кусок кода, или поменять некоторые строчки на другие( типа шаблон пропарсить )?
js, насколько я знаю, читать файлы в строку впринципе не умеет?
через win.document.write('html') нужно строку html явно в коде руками присваивать?
можно сделать что-нить типа:
//кусок кода от балды, только что-б было понятно что я хочу спросить
var win = window.open('file.html','hide|frame'); //типа ссылка есть, а не выводится
html = replase( win.document.innerHTML, arr_name, arr_value ); //типа заменить все name на value
var win = window.open('', '_blank');
win.document.write(html);// типа вывести


"js"
Отправлено Dimitry , 15-Дек-05 15:23 
1.html

<script>
var win=window.open('2.html');
var myvar=1;
</script>

2.html

<script>
alert(opener.myvar);
</script>

я думаю так проще

>var win = window.open('file.html','hide|frame'); //типа ссылка есть, а не выводится
>html = replase( win.document.innerHTML, arr_name, arr_value ); //типа заменить все name на
>value
>var win = window.open('', '_blank');
>win.document.write(html);// типа вывести

а тут можно как ты написал.. токо вывести ссылку в скрытом ифрейме например, или

var win = window.open('file.html');
var targ=win.document.body;
win.document.write(targ.innerHTML=replace( targ.innerHTML, arr_name, arr_value ));


Но думаю твой вариант лучше и нужно проверить загрузился ли файи а потом читать его содержание.