Метод open создает новое окно браузера , аналогично команде "Новое окно" в меню браузера. Обычно это не вкладка, а именно новое окно, но в некоторых браузерах можно настроить то или иное поведение явным образом.
Если параметр strUrl - пустая строка, то в окно будет загружен пустой ресурс about:blank.
В любом случае, загрузка осуществляется асинхронно. Создается пустое окно, загрузка ресурса в которое начнется уже после завершения исполнения текущего блока кода.
Связь между окнами
Метод open возвращает ссылку на новое окно, которая служит для обращения к нему и вызову его методов, если это соответствует ограничениям безопасности Same Origin.
var params = "menubar=yes,location=yes,resizable=yes,scrollbars=yes,status=yes"
window.open("http://ya.ru/", "Yandex", params)
Если окно с именем winName уже существует, то вместо открытия нового окна, strUrl загружается в существующее, ссылка на которое возвращается. При этом строка параметров не применяется.
В случае, когда окно открыть не удалось, например, оно заблокировано штатными Popup-blocker'ами Firefox/IE - вызов open вернет null.
Проверяйте его, если не хотите лишних ошибок в своих скриптах.
Указание пустого strUrl для существующего имени окна - удобный способ получить ссылку на это окно без его перезагрузки.
Если вы хотите открывать новое окно при каждом вызове open() - используйте для winName специальное значение '_blank'.
Строка параметров
Необязательная строка параметров состоит из списка разделенных запятой настроек нового окна. После открытия окна их уже нельзя будет изменить.
Если строки параметров нет или она пустая, то для нового окна будут взяты параметры по умолчанию.
Если строка параметров указана, то не перечисленные в ней параметры будут отключены(кроме titlebar/close). Поэтому включите в ней свойства, которые нужны.
Если в параметрах не указаны размеры, то новое окно будет по размеру такое же, как последнее открытое.
Если не указана позиция нового окна, то оно откроется со сдвигом в 20-30 пикселей (зависит от браузера) от последнего открытого окна.
Такой сдвиг позволяет посетителю заметить, что открылось новое окно.
Если текущее окно максимизировано, то сдвига не будет: новое тоже будет максимизировано.
Основные кроссбраузерные параметры
Параметры, касающиеся элементов управления окна, могут быть жестко установлены в конфигурации браузера. В этом случае их указание в параметрах open() не даст нужного эффекта.
- left/top
- Расстояние от левой/верхней границы окна операционной системы до границы нового окна. Новое окно не может быть создано за границами экрана
- height/width
- Высота/ширина в пикселях внутренности нового окна, включая полосы прокрутки, если они есть. Минимальное значение: 100
- menubar
- Если этот параметр установлен в yes, то в новом окне будет меню.
- toolbar
- Если этот параметр установлен в yes, то в новом окне будет навигация (кнопки назад, вперед и т.п.) и панель вкладок
- location
- Если этот параметр установлен в yes, то в новом окне будет адресная строка
- directories
- Если этот параметр установлен в yes, то в новом окне будут закладки/избранное
- status
- Если этот параметр установлен в yes, то в новом окне будет строка состояния
- resizable
- Если этот параметр установлен в yes, то пользователь сможет изменить размеры нового окна. Рекомендуется всегда устанавливать этот параметр.
- scrollbars
- Если этот параметр установлен в yes, то новое окно при необходимости сможет показывать полосы прокрутки
var newWin = window.open("http://javascript.ru",
"JSSite",
"width=420,height=230,resizable=yes,scrollbars=yes,status=yes"
)
newWin.focus()
Заметки
Чтобы закрыть окно - используйте вызов window.close:
newWin.close()
Чтобы показать новое окно посетителю - используйте вызов window.focus:
newWin.focus()
Автор: Ramnek (не зарегистрирован), дата: 6 октября, 2009 - 14:57
#permalinkdop=window.open("","","width=400,height=150");
.....
dop.document.close();
Есть разница: писать dop.document.close(); или dop.сlose(); ?
Автор: SerJeek (не зарегистрирован), дата: 30 ноября, 2009 - 19:28
#permalinkА как можно из дочернего окна получить доступ к элементам формы главного?
Автор: Гость (не зарегистрирован), дата: 5 декабря, 2009 - 21:50
#permalinkПри location=no адресная строка всё равно появляется в Firefox. А можно ли её всё-таки убрать?
Автор: Serg_ruit (не зарегистрирован), дата: 28 января, 2010 - 21:57
#permalinkДобавлю похожий вопрос к предыдущему посту.
При resizable=no окно можно растянуть в Firefox. А как сделать, чтобы запретить растяжку и оставить заданные width и height?
Автор: Гость (не зарегистрирован), дата: 20 февраля, 2010 - 20:55
#permalinkА можно, сделать когда открывается окно и пред идущее становилось размером 200*200 ?
очень хочу сделать такую фишку
Или чтобы просто вот я кликаю на ссылку открывается новое окно, а на страничка со ссылкой тоже изменится.
Заранее спасибо.
Автор: Дормидонт (не зарегистрирован), дата: 12 марта, 2010 - 13:42
#permalinkНа FireFox никакого действия не оказывает
.
Никак нельзя повлиять чтоб его таки не было?
Автор: MiraMaX166 (не зарегистрирован), дата: 11 апреля, 2010 - 14:15
#permalinkА как из дочернего ещё одно дочернее на новой странице запустить? У меня открывается в том же окошке (первом дочернем). А нужно типа "каскадное расположение окошек: родитель=>дочернее с формой=>дочернее2 с формой ввода. Мне нужно узнать, как открыть в новом окне второе дочернее. Спасибо.
Автор: holi-doli_ru (не зарегистрирован), дата: 8 июля, 2010 - 10:01
#permalinkУ меня window.open используется в следующем виде:
<a href="javascript://" onclick="window.open('Ссылка на сайт');return false;">анкор</a>
можно каким либо образом в onclick="window.open('Ссылка на сайт');return false;" вставить статичная ссылка на сайт + ссылка текущей странички?
Надо для передачи параметра на открываемую страницу.
Автор: Гость (не зарегистрирован), дата: 9 июля, 2010 - 13:18
#permalinkОбнаружил в IE 8 следующее:
var vWinCal = window.open("", "Calendar", "width=250,height=280,status=no,resizable=no,top=200,left=200");
if (vWinCal)
alert('true');
else
alert('false');
и получаю alert('false'), т.е. vWinCal == null...
кто-нибудь может мне объяснить, что не так?
Автор: Гость (не зарегистрирован), дата: 29 июля, 2010 - 00:19
#permalinkwidth=500,height=400 - размер окна
left=450,top=200 - Расстояние от левой/верхней границы окна операционной системы до границы нового окна.
а как, чтобы появившееся страница внутри нового окне была с центра, а не с левой части?
Чтоб страница которая в новом окне координировалась по центру
Автор: Гость (не зарегистрирован), дата: 9 августа, 2010 - 20:05
#permalinkРебята помогите. нужен скрипт открывает 2 окна при заходе на страницу, на которой стоит скрипт. Как то так.
Автор: Гость (не зарегистрирован), дата: 9 августа, 2010 - 20:06
#permalinkАга, и что бы не блокировался ФФ как всплывающие окна!
Автор: VladokZzz (не зарегистрирован), дата: 16 августа, 2010 - 16:58
#permalinkС главной страницы открыл дочернее, в нем ведутся свои действия. Хочу открыть еще одно дочернее с главной, а оно открывается в первом. Как мне открыть второе дочернее окно дополнительно не затрагивая первое?
Спасибо за ответ, если не сложно на мыло!
Автор: seo-amateur (не зарегистрирован), дата: 15 сентября, 2010 - 22:32
#permalinkА как убрать поля в открывающемся окне? Чтоб были равны 0.
Автор: Гость (не зарегистрирован), дата: 15 декабря, 2010 - 14:06
#permalinkкак сделать, чтобы окно открылось, а вызывающее его закрылось.
Автор: _Андрей (не зарегистрирован), дата: 11 января, 2011 - 11:27
#permalinkМожно ли передать в окно, открываемое через window.open,
данные методом POST?
Если да, то как это сделать?
Автор: Mikle, дата: 15 июня, 2011 - 17:19
#permalinkУ метода window.open четыре параметра:
window.open(strUrl, winName [, winParams] [, saveHistory])
bool saveHistory -
true - добавляет запись в историю посещения,
false - замещает текущую запись в истории
Автор: Гость (не зарегистрирован), дата: 18 июня, 2011 - 20:20
#permalinkwindow.open(strUrl, winName [, winParams])
А можно ли вместо strUrl, указать путь к файлу на жестком диске, например к мелодии, чтобы браузер её воспроизводил в новой вкладке? Как это правильно сделать?
Автор: Гость (не зарегистрирован), дата: 14 июля, 2011 - 17:54
#permalinkДоброе время суток !
Не знаю, может чё и упустил, но никак не могу справиться с ИЕ так как он настойчиво игнорит атрибуты нового окна
myWin = open("msg.php", "displayWindow", "width=500,height=300,status=no,toolbar=no,menubar=no,resizable=no");В Опере открываеться нормальное окно 500 х 300 ... а вот в ИЕ (пока что проверял только в ИЕ 7) ... открываеться вкладка на весь экран ... кто-нибудь может объяснить что не так ? )
P.S.: В JavaScript не силён, по сему просьба сильно не пинать, если вопрос глупый ))
Автор: javs, дата: 20 июля, 2011 - 02:30
#permalinkА вот такая задачка никому не попадалась?
В родительском окне есть 2 ссылки: одна переход на другую страницу сайта, другая popup-окно myWin=window.open(...). Открываем popup-окно и возвращаемся в родительское. Переходим по ссылке на другую страницу сайта где пробуем закрыть окно по myWin.close(). Имеем ошибку, поскольку очевидно, что myWin не определена, т.к. окно открывалось с предыдущей страницы. Однако если на новой странице выполнить myWin=window.open(...), то браузер (FF, Opera, Crome) как-то понимает, что такое окно уже было открыто по ходу работы раньше и выводит контент именно в это окно, не создавая новое, при том, что сам объект myWin вроде как не определен.
Вопрос как закрыть такое окно с любой страницы сайта по window.close()?
Автор: Гость (не зарегистрирован), дата: 28 июля, 2011 - 22:38
#permalinkПодскажите пожалуйста!
Как сделать чтобы открывалось новое окно (или страница) URL адрес которой бы вводился вручную в поле формы?
Автор: EvgenyК (не зарегистрирован), дата: 1 августа, 2011 - 15:21
#permalinkДобрый день!
Из опыта, может кому поможет...
Использование символа "." (вполне вероятно что этим символом список не ограничивается) в параметре winName при использовании метода window.open(strUrl, winName [, winParams]) ставит любимый IE в ступор (exeption) с "очень внятным и как всегда однозначным" текстом ошибки "Invalid argument"
А, учитывая что код писался сразу и не тривиальный, пришлось потратить пару минут вычленяя грабли - пресловутую точку....
Удачи!
2Илья: Спасибо за полезный ресурс, где локонично удалось собрать от элементарной до топовой информации по теме! И если не затруднит, включи плз., описанную оговорку в статью, чтоб коллеги время на поиски "загадочного" аргумента не теряли! Еще раз удачи!!!
Автор: Гость (не зарегистрирован), дата: 14 августа, 2011 - 15:05
#permalinkvar nW = window.open("https:\\...сайт...", "okno");
nW.document.getElementById("myId"); //ожидается отсутствие узла
или
nW.attachEvent( "onload" , function(){ alert("Loaded")} );
в обоих случаях в IE8 - отказано в доступе. Отказ связан с https или "фишки" ИЕ?
Сайт добавлен в "надежные узлы", настройки скриптов либо"включить", либо "предлагать".
Автор: Валентн (не зарегистрирован), дата: 20 августа, 2011 - 11:44
#permalinkЗдравствуйте. Как узнать, открыто ли всплывающее окно? Надо сделать так: При загрузке открывается popup, это легко, а если попап уже есть, то не надо его ещё раз перезагружать. Спасибо.
Автор: matcik (не зарегистрирован), дата: 29 августа, 2011 - 18:01
#permalinkПодскажите плиз, как открыть ссылку в том же окне, при таком написании открывается новое окно. Прошу прощения за неграмотность в программировании.
в массиве а[] содержится ссылка на страницу, которую нужно открыть.
Автор: matcik (не зарегистрирован), дата: 29 августа, 2011 - 18:03
#permalinkПодскажите плиз, как открыть ссылку в том же окне, при таком написании открывается новое окно. Прошу прощения за неграмотность в программировании.
в массиве а[] содержится ссылка на страницу, которую нужно открыть.
a href="Javascript:window.open('a[1]');" target="_self"
Автор: Гость (не зарегистрирован), дата: 1 сентября, 2011 - 17:27
#permalinkА как открыть окно, для которого нет url, а есть просто HTML в виде строки. Т.е. надо сделать что-то вроде
window.open("my page content", ....)
Есть такая возможность в JavaScript?
Автор: KamalovRadik, дата: 20 ноября, 2011 - 18:03
#permalinkВсе браузеры блокируют всплывающие окна, как с этим бороться?
Автор: Гость (не зарегистрирован), дата: 26 марта, 2012 - 16:14
#permalinkЕсть первая страничка "1.html", которая создаёт окно "а", из "1.html" можно обращаться к "а" и наоборот с помощью "window.opener", после перехода на вторую страничку "2.html" из окна можно обращаться к ней. Возможно ли из "2.html" обращаться к окну "а"?
function f1() {
a=window.open('','','');
b='Window1';
a.document.write(b);
}
function f2() {
alert(a.document.getElementById('id3').innerHTML);
}
1.html
1
2
2
function f1() {
alert(a.document.getElementById('id3').innerHTML);
}
2.html
1
Автор: Гость (не зарегистрирован), дата: 26 марта, 2012 - 16:31
#permalinkЕсть первая страничка "1.html", которая создаёт окно "а", из "1.html" можно обращаться к "а" и наоборот с помощью "window.opener", после перехода на вторую страничку "2.html" из окна можно обращаться к ней. Возможно ли из "2.html" обращаться к окну "а"?
1.html:
<script> function f1() { a=window.open('','',''); b='<b id="id3">Window</b><button onclick="alert(window.opener.document.getElementById(\'id\').innerHTML);">1</button><br>'; a.document.write(b); } function f2() { alert(a.document.getElementById('id3').innerHTML); } </script> <b id="id">1.html</b><br> <button onclick='f1();'>1</button><br> <button onclick='f2();'>2</button><br> <a href="2.html">2</a>2.html
<script> function f1() { alert(a.document.getElementById('id3').innerHTML); } </script> <b id='id'>2.html</b> <button onclick='f1()'>1</button>Автор: Гость (не зарегистрирован), дата: 7 июля, 2012 - 16:53
#permalinkА есть возможность показать html элемент по какому-то событию в другом табе (активном) браузера?
Автор: Olek22 (не зарегистрирован), дата: 23 ноября, 2012 - 12:16
#permalinkНа странице есть ссылка:
Требуется открыть в новом окне html-шаблон вида:
и вложить в div документ text/1.html
Пишу скрипт:
function a(c) {newwin=window.open('shablon.html',' ',' '); newwin.document.getElementById('b').innerHTML='<embed src="text/'+c+'.html"></embed>';}Шаблон открывается, но в div ничего не вставляется
Автор: JK_saver (не зарегистрирован), дата: 12 января, 2013 - 18:45
#permalinkКак в таком случае в хроме можно задать имя окна?
window.open('data:text/xml; charset=utf-8,' + encodeURIComponent(document), "_blank", 'toolbar=0, location=0, directories=0, status=0, scrollbars=1, resizable=1, menuBar=1', true);Автор: ALEX2013 (не зарегистрирован), дата: 19 февраля, 2013 - 01:11
#permalinkЗдравствуйте!
Подскажите, пожалуйста, как сделать наоборот, чтобы окно не открывалось отдельно, а открывалось только в новой вкладке браузера?
Что нужно здесь изменить?
function rel()
{
if(navigator.appName=='Microsoft Internet Explorer' || navigator.appName=='Opera')
{
window.history.go(0);
}
else
{
window.location.reload();
}
}
function win()
{
window.open('/<?php echo $catalog ?>/form.php?op=1','','width=950,height=600,status=no,toolbar=no,menubar=no,scrollbars=yes')
}
Автор: Zagrei (не зарегистрирован), дата: 19 февраля, 2013 - 19:47
#permalinkПодскажите, пожалуйста, как открыть окно в моде приватного просмотра? Можно под какой-то определенный браузер, если универсального решения нет.
Автор: Гость (не зарегистрирован), дата: 20 февраля, 2013 - 16:45
#permalinkКак можно выполнить функцию из текущей страницы в новом окне?
Автор: Гость (не зарегистрирован), дата: 28 мая, 2013 - 02:48
#permalinkПриветствую!
Прошу взглянуть на сей, казалось бы, нехитрый фрагмент:
var win1 = window.open(hr2, "doctree");
var win2 = window.open(hr1, "doctext");
var win = window.open(hr, "_blank");
Подскажите, возможно ли переменные из первых двух строк привязать к последней строке, чтобы в итоге было как-то так:
var win1 = (hr2, "doctree");
var win2 = (hr1, "doctext");
var win = win1.win2.window.open(hr, "_blank");
Т.е., первые два окна не откроются, но подгрузятся во фрейм, открываемый третьей строкой.
Пытаюсь добиться следующего: дождаться открытия нового фреймового двустворчатого окна (это третья строка приведенного кода), -- и подгрузки в каждую из створок первой и второй строк.
Автор: Гость (не зарегистрирован), дата: 13 июня, 2013 - 07:05
#permalinkПомогите разобраться в следующей проблеме. Из окна wind открываю дочернее wind1, а из дочернего wind1 следующее дочернее wind 2. При открытии wind1, окно wind не обновляется. А при открытии wind2, окно wind1 перезагружается. Как сделать, чтобы окно wind1 не перезагружалось?
Автор: Andy8 (не зарегистрирован), дата: 18 сентября, 2013 - 18:52
#permalinkresizable рекомендуется всегда устанавливать явно - и это правильно. Под windows8 в ie10, эта опция по умолчанию стала равной "no".
Автор: Гость (не зарегистрирован), дата: 26 сентября, 2013 - 13:08
#permalinkwindow.open при асинхронном вызове из колбэка всегда создает новое окно, а не вкладку как в обычном режиме + newWin.focus() перестает работать.
Если кто знает как это побороть добавьте в статью или в каменты.
Автор: true Amsterdam (не зарегистрирован), дата: 2 октября, 2013 - 11:56
#permalinkКак в HTML то всю это конструкцию вставить правильно?? Рабочий бы пример прописали хоть, непонятно, как вставлять. У меня вот так сейчас вставлено в коде, чтобы новое окошко открылось по ссылке:
<a href="javascript:window.open('stranica.html', 'joe', config='height=600,width=800')"></a>но тут не могу понять, куда вставить параметры, чтобы не ресайзилось, строчки с адресом не было и т.п. А ваш код наоборот, не понятно как вставить в ссылку. Подскажите! Вместе с var его вставлять или без, или как??
Автор: Ольга 5 (не зарегистрирован), дата: 25 октября, 2013 - 20:53
#permalinkНичего не понимаю в javascript
Откуда взялся у меня. ???
Копировала уроки в ворде, все открывалось. А сегодня появился вместо ворда этот
значек javascript . Теперь уроки просмотреть не могу. Пропали. Что делать? Пожалуйста подскажите.
Автор: Гость (не зарегистрирован), дата: 11 ноября, 2013 - 23:51
#permalinkА как настроить внешний вид окна? Что бы не видно было рамку окна. а было типа лайт-бокса? Такое вообще возможно?
Автор: Гость (не зарегистрирован), дата: 22 декабря, 2013 - 01:59
#permalinkКак сделать так, чтобы не открывалась в новом окне и даже в новой вкладке, а открывалось только в своём родном окне?
Автор: Кеша Модельский (не зарегистрирован), дата: 16 августа, 2014 - 13:37
#permalinkЗдравствуйте. Подскажите, как сделать, чтоб новое окно открывалось всем юзерам за исключением нескольких ip? Спасибо.
Автор: Гость - Сергей (не зарегистрирован), дата: 5 октября, 2014 - 18:50
#permalinkЗдравствуйте.
Подскажите как сделать чтоб окно открывалось в новой вкладке а не в новом окне.
А фокус оставался на предыдущей вкладке?
Спасибо.
Автор: Гость (не зарегистрирован), дата: 4 ноября, 2014 - 19:00
#permalinkСегодня задали такое задание: после открытия нового окна визуализировать в нем всех потомков тега окна-предка.
Помогите, пожалуйста
Автор: Гость (не зарегистрирован), дата: 31 марта, 2015 - 14:30
#permalinkА как сделать так чтоб ссылка в отправленном письме открывалась у получателя в том же окне а не в новом ?
Автор: Гость (не зарегистрирован), дата: 21 февраля, 2016 - 20:59
#permalinkподскажите как подправить этот код, чтобы открывалось в этом же окне
$('.hidden-link').click(function(){window.open($(this).data('link'));return false;});
Автор: Гость (не зарегистрирован), дата: 24 апреля, 2016 - 03:45
#permalinkПомогите, пожалуйста...
главное окно
открыть окно
Открыть окно
// генерируем новое окно с кнопкой и ссылкой
var newWin;
function Open_new_win() {
newWin=open('','','height=100','widtch=100');
newWin.document.write('новое окно');
newWin.document.write('закрыть окно');
newWin.document.write('закрыть окно');
newWin.document.write('');
return(newWin);
}
// как запустить эту фунцию???
function Close_new_win() {
alert("окно будет закрыто!");
newWin.close();
}
Автор: Гость (не зарегистрирован), дата: 30 апреля, 2016 - 08:56
#permalinkПодскажите, пожалуйста, как сделать так, чтобы на мобильных устройствах ссылка открывалась в текущем окне, а на ПК - во всплывающем окне фиксированного размера?
Автор: Андрей38, дата: 18 августа, 2016 - 13:57
#permalinkЗдравствуйте гуру!Объясните пожайлуста,почему ифреймы открываються размером с мобильный телефон, а не в оригинальном размере-те на всю страницу? Как это победить???
javascript:
var news = document.getElementById('studyDiscover').querySelectorAll(".index a");
for (var i = 0; i < news.length; i++)
{document.write(' ')} ...
Спасибо!
...не могу понять, что здесь происходит.Объясните пожайлуста,что здесь произошло со внедрением s+='...
javascript:var l=document.getElementById('studyDiscover').querySelectorAll(".index a");
var s='';var c=0; for(var i=0;i '};document.write(s);w.document.close()
Автор: Andrey123 (не зарегистрирован), дата: 16 мая, 2017 - 18:11
#permalinkА что означает thumbs up? Это значение куда ближе подходит:
https://preply.com/question/chto-oznachaet-thumbs-up