Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > передать параметры из одного окна в другое


Автор: Samotnik 9.4.2010, 16:24
сабж.
есть ф-ция, в которой window.open
как передать параметры в новое открывшееся окно ?
get  не подходит, т.к.  параметр оч большой (xml)
post не откроет новое окно.

вродь задача тривиальна, а решить сложно.  smile 

Автор: azesmcar 9.4.2010, 16:30
Цитата(Samotnik @  9.4.2010,  16:24 Найти цитируемый пост)
post не откроет новое окно.

почему не откроет?
Код

<form method="post" target="_blank" action="http://www.google.com">
<input type="submit" value="ok">
</form>


Добавлено через 12 минут и 23 секунды
Еще в голову пришел такой вариант

Код

<!-- index.html -->
<script>
    function foo() {
        w = window.open('new.html','mywindow','width=400,height=200,left=0,top=100,screenX=0,screenY=100');
        w.opener = this.window;
    }
    
    function data() {
        return 'Hello World';
    }
</script>
<input type="button" value="New Window!" onClick="javascript:foo()">


Код

<!-- new.html -->
<body onLoad="javascript:alert(window.opener.data())">
</body>

Автор: Samotnik 9.4.2010, 16:44
azesmcar, не понимаю, и как я смогу передать xml файл в виде параметра в другое  окно, и затем его прочитать там ?  

Автор: azesmcar 9.4.2010, 16:46
Цитата(Samotnik @  9.4.2010,  16:44 Найти цитируемый пост)
azesmcar, не понимаю, и как я смогу передать xml файл в виде параметра в другое  окно, и затем его прочитать там ?   

в каком из вариантов непонятно?

Добавлено через 2 минуты и 16 секунд
со вторым вариантом вот так как-то..
Код

<script>
    var xml = '';
    function openWindow() {
        w = window.open('new.html','mywindow','width=400,height=200,left=0,top=100,screenX=0,screenY=100');
        w.opener = this.window;
    }
    function data() {
        return xml;
    }
    function buildXML() {
        return '... xml data ...';
    }
    function sendXML() {
        xml = buildXML();
        openWindow();
        
    }
</script>
<input type="button" value="New Window!" onClick="javascript:sendXML();">

Код

<!-- new.html -->
<body onLoad="javascript:alert(window.opener.data())">
</body>


или я не так понимаю задачу?

Автор: Samotnik 13.4.2010, 11:06
azesmcar,  а как в твоем случае можно передать объкет со всеми его свойствами ? 

Автор: azesmcar 15.4.2010, 10:16
Цитата(Samotnik @  13.4.2010,  11:06 Найти цитируемый пост)
azesmcar,  а как в твоем случае можно передать объкет со всеми его свойствами ?  

также как XML не передается? какая разница текст или объект?

Автор: DeMONiZ 15.4.2010, 12:02
Samotnik лучше расскажи для чего тебе это надо, потому как тебя как мне кажется не понимают.

например так я тоже передаю какую то информацию новому окну и метод тут post


Код

<?
if (!isset($_POST['xml']))
{
echo '<form action="" method="post">

<textarea name="xml" ></textarea><br />
<input type="submit" value="Даем окну данные" />

</form>';

}
else
{
echo '
<script>
myWindow= open("", "TestWindow","width=300,height=100,status=no,toolbar=no,menubar=no");
myWindow.document.open();
myWindow.document.write("<html><head><title>NewWindow");
myWindow.document.write("</title></head><body>");
myWindow.document.write("'.$_POST['xml'].'");
myWindow.document.write("</body></html>");
myWindow.document.close();
</script>
';

}
?>
правда это php...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)