Подтвердить что ты не робот

Доступ к окну по имени окна

Если я открою окно, используя

window.open('myurl.html', 'windowname', 'width=100,height=100');

Как я могу обратиться к новому окну (с той же самой страницы, которая открыла его), используя 'windowname'? Этот вопрос конкретно об этом. Я знаю, что я мог бы сохранить ссылку на дескриптор, используя "var mywin = window.open(...)", но в этой ситуации мне все равно.

Спасибо, - Дейв

4b9b3361

Ответ 1

afaik нет способа, как windows['windowname']. "Windowname", назначенный в window.open(), может быть адресован как цель в <a target="windowname" [...] >

Ответ 2

Если вы не сохранили ссылку на окно, нет способа восстановить его. Однако если это окно все еще открыто и , если загруженная страница принадлежит к тому же домену, что и ваша страница, вы можете запустить в нем код JavaScript:

window.open("javascript:doSomething()", "windowname");

Достаточно ли в вашем сценарии того, что вы пытаетесь достичь.

Ответ 3

В firefox (может работать и в других браузерах, но теперь это не мое беспокойство), я смог ссылаться на одно окно на несколько загрузок страниц с помощью

var w = window.open("", "nameofwindow");

Это открывает новое окно, если оно не существует и возвращает ссылку на существующее окно, если оно существует без изменения содержимого окна.

С помощью jQuery я смог добавить новый контент, чтобы быстро собрать интересные ссылки, такие как

$('body', w.document).append(link_tag);

Ответ 4

Петр прав:

var w = window.open("", "nameofwindow");

работает во всех браузерах, я использую его для получения ссылки на объект окна, ранее открытый другой страницей. Единственная проблема заключается в первоначальном открытии страницы, если всплывающее окно не существует, вы получите новое окно с пустой страницей.

Я попытался вызвать функцию Javascript внутри контекста другого документа, чтобы проверить, открывал ли я новое окно или загружал уже активную страницу. Если проверка завершилась неудачно, я снова вызову window.open, чтобы загрузить загружаемый контент:

var w = window.open("http://mydomain.com/myPopup", "nameofwindow");

Надеюсь, что это поможет.

Ответ 5

Это невозможно. Имя windowName должно использоваться только в target="..." ссылок/форм или повторять одно и то же имя в другом вызове window.open, чтобы открыть новый URL-адрес в этом окне.