Ответ 1
afaik нет способа, как windows['windowname']
.
"Windowname", назначенный в window.open(), может быть адресован как цель в <a target="windowname" [...] >
Если я открою окно, используя
window.open('myurl.html', 'windowname', 'width=100,height=100');
Как я могу обратиться к новому окну (с той же самой страницы, которая открыла его), используя 'windowname'? Этот вопрос конкретно об этом. Я знаю, что я мог бы сохранить ссылку на дескриптор, используя "var mywin = window.open(...)", но в этой ситуации мне все равно.
Спасибо, - Дейв
afaik нет способа, как windows['windowname']
.
"Windowname", назначенный в window.open(), может быть адресован как цель в <a target="windowname" [...] >
Если вы не сохранили ссылку на окно, нет способа восстановить его. Однако если это окно все еще открыто и , если загруженная страница принадлежит к тому же домену, что и ваша страница, вы можете запустить в нем код JavaScript:
window.open("javascript:doSomething()", "windowname");
Достаточно ли в вашем сценарии того, что вы пытаетесь достичь.
В firefox (может работать и в других браузерах, но теперь это не мое беспокойство), я смог ссылаться на одно окно на несколько загрузок страниц с помощью
var w = window.open("", "nameofwindow");
Это открывает новое окно, если оно не существует и возвращает ссылку на существующее окно, если оно существует без изменения содержимого окна.
С помощью jQuery я смог добавить новый контент, чтобы быстро собрать интересные ссылки, такие как
$('body', w.document).append(link_tag);
Петр прав:
var w = window.open("", "nameofwindow");
работает во всех браузерах, я использую его для получения ссылки на объект окна, ранее открытый другой страницей. Единственная проблема заключается в первоначальном открытии страницы, если всплывающее окно не существует, вы получите новое окно с пустой страницей.
Я попытался вызвать функцию Javascript внутри контекста другого документа, чтобы проверить, открывал ли я новое окно или загружал уже активную страницу. Если проверка завершилась неудачно, я снова вызову window.open, чтобы загрузить загружаемый контент:
var w = window.open("http://mydomain.com/myPopup", "nameofwindow");
Надеюсь, что это поможет.
Это невозможно. Имя windowName должно использоваться только в target="..."
ссылок/форм или повторять одно и то же имя в другом вызове window.open
, чтобы открыть новый URL-адрес в этом окне.