Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Нужно вызвать функцию из другого окна (https://javascript.ru/forum/misc/1177-nuzhno-vyzvat-funkciyu-iz-drugogo-okna.html)

Destiny 25.04.2008 10:54

Нужно вызвать функцию из другого окна
 
У меня есть окно с документом, где яваскрипт управляет вторым окном, то есть открывает его, выводит туда информацию и тд. подскажите, как сделать так, чтобы скрипт второго окна обратился к функции из скрипта первого окна, там переменная должна считаться одна.

вот кнопка, которую я вывожу во второе окно(TestWin):

TestWin.document.write("<input id='QAccept' type='button' value='Принять ответ' onclick=AnsOnQuest()/>");

а эта функция AnsOnQuest() определена в первом окне.

Подскажите как сделать так, чтобы при нажатии этой кнопки выполнялась AnsOnQuest().

Спасибо

Gvozd 25.04.2008 11:17

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

Destiny 25.04.2008 17:43

я обнаружил, что если обращаться к функции или переменной другого окна через
<имя окна>.<функция>,
то из этого ничего не выходит, браузер пишет ошибку, что либо не находит такого объекта, либо такого метода в нём.

Получается, мне необходимо как-то передать объекта первого окна в функцию второго. Как это сделать?

Dmitry A. Soshnikov 25.04.2008 18:13

Destiny,

opener.AnsOnQuest();

Destiny 25.04.2008 19:59

Спасибо за opener! Я даже не встречал раньше такого параметра)

scuter 25.04.2008 20:14

<input id='QAccept' type='button' value='Принять ответ' onclick="document.AnsOnQuest ()"/>
examplefunct = function()
{
    .........
}
TestWin.document.AnsOnQuest = examplefunct;

Destiny 07.05.2008 01:32

Спасибо большое! С помощью этого у меня получилось сделать неплохой тест.


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