Мастер-классы по Javascript, AJAX/COMET, jQuery Узнать больше...
Javascript.RU

window.open

Синтаксис

var newWin = window.open(strUrl, winName [, winParams])

Аргументы

strUrl
Адрес для загрузки в новое окно, любая адресная строка, которую поддерживает браузер
winName
Имя нового окна для использования в параметре target форм и ссылок
winParams
Необязательный список настроек, с которыми открывать новое окно

Описание, примеры

Метод 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 - 15:57
#permalink

dop=window.open("","","width=400,height=150");
.....
dop.document.close();

Есть разница: писать dop.document.close(); или dop.сlose(); ?


Автор: Илья Кантор, дата: 6 октября, 2009 - 17:41
#permalink

Методы window.close (закрыть окно) и document.close (закрыть текущий документ для записи) - разные. Чтобы закрыть окно - используйте window.close


Автор: SerJeek (не зарегистрирован), дата: 30 ноября, 2009 - 20:28
#permalink

А как можно из дочернего окна получить доступ к элементам формы главного?


Автор: izra (не зарегистрирован), дата: 2 декабря, 2009 - 17:36
#permalink

window.parent


Автор: makitka (не зарегистрирован), дата: 21 января, 2010 - 15:13
#permalink

window.opener


Автор: Гость (не зарегистрирован), дата: 5 декабря, 2009 - 22:50
#permalink

При location=no адресная строка всё равно появляется в Firefox. А можно ли её всё-таки убрать?


Автор: Serg_ruit (не зарегистрирован), дата: 28 января, 2010 - 22:57
#permalink

Добавлю похожий вопрос к предыдущему посту.
При resizable=no окно можно растянуть в Firefox. А как сделать, чтобы запретить растяжку и оставить заданные width и height?


Автор: Гость (не зарегистрирован), дата: 20 февраля, 2010 - 21:55
#permalink

А можно, сделать когда открывается окно и пред идущее становилось размером 200*200 ? очень хочу сделать такую фишку Или чтобы просто вот я кликаю на ссылку открывается новое окно, а на страничка со ссылкой тоже изменится.

Заранее спасибо.


Автор: Дормидонт (не зарегистрирован), дата: 12 марта, 2010 - 14:42
#permalink

На FireFox никакого действия не оказывает

status=no

.
Никак нельзя повлиять чтоб его таки не было?


Автор: Петр(tm) (не зарегистрирован), дата: 2 мая, 2010 - 02:57
#permalink

откройте about:config там есть группа настроек dom.disable_window_open
там где стоит true - фича работать не будет.
это все борьба за "безопасность", будь она не ладна.
одни делают фичи, другие рубят.
вы можете у себя подкрутить, но у других юзеров проблемы будут такие же.


Автор: MiraMaX166 (не зарегистрирован), дата: 11 апреля, 2010 - 15:15
#permalink

А как из дочернего ещё одно дочернее на новой странице запустить? У меня открывается в том же окошке (первом дочернем). А нужно типа "каскадное расположение окошек: родитель=>дочернее с формой=>дочернее2 с формой ввода. Мне нужно узнать, как открыть в новом окне второе дочернее. Спасибо.


Автор: Петр(tm) (не зарегистрирован), дата: 2 мая, 2010 - 02:58
#permalink

создавайте новое окно с новым именем, если имя такое же - оно замещает существующее. ничего сверхестественного.


Автор: holi-doli_ru (не зарегистрирован), дата: 8 июля, 2010 - 11:01
#permalink

У меня window.open используется в следующем виде:
<a href="javascript://" onclick="window.open('Ссылка на сайт');return false;">анкор</a>

можно каким либо образом в onclick="window.open('Ссылка на сайт');return false;" вставить статичная ссылка на сайт + ссылка текущей странички?
Надо для передачи параметра на открываемую страницу.


Автор: Гость (не зарегистрирован), дата: 8 июля, 2010 - 14:07
#permalink

нашел что можно использовать вот такое: location.href.split('#',1)

Не знаю насколько это правильно , но вроде как работает.
Ссылка приняла вид :
<a href="javascript://" onclick="window.open('Ссылка на сайт'+location.href.split('#',1));return false;">анкор</a>


Автор: Гость (не зарегистрирован), дата: 9 июля, 2010 - 14: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...

кто-нибудь может мне объяснить, что не так?


Автор: Гость (не зарегистрирован), дата: 9 июля, 2010 - 14:22
#permalink

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


Автор: Гость (не зарегистрирован), дата: 29 июля, 2010 - 01:19
#permalink

width=500,height=400 - размер окна
left=450,top=200 - Расстояние от левой/верхней границы окна операционной системы до границы нового окна.

а как, чтобы появившееся страница внутри нового окне была с центра, а не с левой части?
Чтоб страница которая в новом окне координировалась по центру


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
2 + 1 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Вакансии
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Статьи и мероприятия

Будьте в курсе наших последних новостей!

Последние обсуждения на форуме
Forum
Последние комментарии