Метод 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()
dop=window.open("","","width=400,height=150");
.....
dop.document.close();
Есть разница: писать dop.document.close(); или dop.сlose(); ?
Методы window.close (закрыть окно) и document.close (закрыть текущий документ для записи) - разные. Чтобы закрыть окно - используйте window.close
Можно более развёрнуто?
А как можно из дочернего окна получить доступ к элементам формы главного?
При location=no адресная строка всё равно появляется в Firefox. А можно ли её всё-таки убрать?
Добавлю похожий вопрос к предыдущему посту.
При resizable=no окно можно растянуть в Firefox. А как сделать, чтобы запретить растяжку и оставить заданные width и height?
напиши обработчик события для окна onResize ,и установи в нем значения width и height по-умолчанию.
А можно, сделать когда открывается окно и пред идущее становилось размером 200*200 ? очень хочу сделать такую фишку Или чтобы просто вот я кликаю на ссылку открывается новое окно, а на страничка со ссылкой тоже изменится.
Заранее спасибо.
На FireFox никакого действия не оказывает
.
Никак нельзя повлиять чтоб его таки не было?
откройте about:config там есть группа настроек dom.disable_window_open
там где стоит true - фича работать не будет.
это все борьба за "безопасность", будь она не ладна.
одни делают фичи, другие рубят.
вы можете у себя подкрутить, но у других юзеров проблемы будут такие же.
А как из дочернего ещё одно дочернее на новой странице запустить? У меня открывается в том же окошке (первом дочернем). А нужно типа "каскадное расположение окошек: родитель=>дочернее с формой=>дочернее2 с формой ввода. Мне нужно узнать, как открыть в новом окне второе дочернее. Спасибо.
создавайте новое окно с новым именем, если имя такое же - оно замещает существующее. ничего сверхестественного.
У меня window.open используется в следующем виде:
<a href="javascript://" onclick="window.open('Ссылка на сайт');return false;">анкор</a>
можно каким либо образом в onclick="window.open('Ссылка на сайт');return false;" вставить статичная ссылка на сайт + ссылка текущей странички?
Надо для передачи параметра на открываемую страницу.
нашел что можно использовать вот такое: location.href.split('#',1)
Не знаю насколько это правильно , но вроде как работает.
Ссылка приняла вид :
<a href="javascript://" onclick="window.open('Ссылка на сайт'+location.href.split('#',1));return false;">анкор</a>
Обнаружил в 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...
кто-нибудь может мне объяснить, что не так?
забыл добавить, что новое окно открывается нормально, но вот как такового объекта не получаю
width=500,height=400 - размер окна
left=450,top=200 - Расстояние от левой/верхней границы окна операционной системы до границы нового окна.
а как, чтобы появившееся страница внутри нового окне была с центра, а не с левой части?
Чтоб страница которая в новом окне координировалась по центру
для того чтобы окно появлялось в центре экрана:
Ребята помогите. нужен скрипт открывает 2 окна при заходе на страницу, на которой стоит скрипт. Как то так.
Ага, и что бы не блокировался ФФ как всплывающие окна!
С главной страницы открыл дочернее, в нем ведутся свои действия. Хочу открыть еще одно дочернее с главной, а оно открывается в первом. Как мне открыть второе дочернее окно дополнительно не затрагивая первое?
Спасибо за ответ, если не сложно на мыло!
Нужно открыть окно с другим именем.
А как убрать поля в открывающемся окне? Чтоб были равны 0.
как сделать, чтобы окно открылось, а вызывающее его закрылось.
Можно ли передать в окно, открываемое через window.open,
данные методом POST?
Если да, то как это сделать?
Да, можно.
Сперва открой нужное тебе окно, и незабудь назанчить ему имя, после чего, сабмить форму, но у формы должен быть указан таргет - имя твоего окна, так ты туда засабмитишь данные.
У метода window.open четыре параметра:
window.open(strUrl, winName [, winParams] [, saveHistory])
bool saveHistory -
true - добавляет запись в историю посещения,
false - замещает текущую запись в истории
window.open(strUrl, winName [, winParams])
А можно ли вместо strUrl, указать путь к файлу на жестком диске, например к мелодии, чтобы браузер её воспроизводил в новой вкладке? Как это правильно сделать?
Доброе время суток !
Не знаю, может чё и упустил, но никак не могу справиться с ИЕ так как он настойчиво игнорит атрибуты нового окна
В Опере открываеться нормальное окно 500 х 300 ... а вот в ИЕ (пока что проверял только в ИЕ 7) ... открываеться вкладка на весь экран ... кто-нибудь может объяснить что не так ? )
P.S.: В JavaScript не силён, по сему просьба сильно не пинать, если вопрос глупый ))
К несчастью, каждый браузер интерпретирует JS по своему
Спорить конечно не буду, но всё же ведь как-то создают не большие окна и работает во всех браузерах (и в ИЕ тоже) ... к примеру окна для выбора смайла на форумах, чатах, браузерных играх и т.д.
Скорее всего это "эмуляция". Ну а вообще, всё может быть, я просто крайне редко пользуюсь window.open и поэтому не вникал особо.
После блужданий по инету в поисках ответа ... наткнулся (уже не помню где именно) на один коментарий на форуме, где было написано, что мол именно седьмая версия ИЕ не хочет создавать маленькие окна и разворачивает на весь экран по не известным причинам ) ... Вспомнил про одну браузерку и решил убедиться так ли это ... и ... да, заходя в игру из под Оперы там открывается не большое окно ... зайдя из под ИЕ 7 открывается тоже не большое ... эм ... я так думаю скорее это скрытый div ... или что-то подобное ... но никак не окно )
По сему думаю вопрос себя исчепал и более не актуален )
Мда ... пошёл я переписывать заново гостевуху и молить Бога, что быть может в ближайшее время у ребят из Майкрософт произойдёт чудо и они наконец-то смогут написать браузер не хуже чем все остальные ))
P.S.: kobezzza - благодарю за удилённое внимание )
А вот такая задачка никому не попадалась?
В родительском окне есть 2 ссылки: одна переход на другую страницу сайта, другая popup-окно myWin=window.open(...). Открываем popup-окно и возвращаемся в родительское. Переходим по ссылке на другую страницу сайта где пробуем закрыть окно по myWin.close(). Имеем ошибку, поскольку очевидно, что myWin не определена, т.к. окно открывалось с предыдущей страницы. Однако если на новой странице выполнить myWin=window.open(...), то браузер (FF, Opera, Crome) как-то понимает, что такое окно уже было открыто по ходу работы раньше и выводит контент именно в это окно, не создавая новое, при том, что сам объект myWin вроде как не определен.
Вопрос как закрыть такое окно с любой страницы сайта по window.close()?
Подскажите пожалуйста!
Как сделать чтобы открывалось новое окно (или страница) URL адрес которой бы вводился вручную в поле формы?
Добрый день!
Из опыта, может кому поможет...
Использование символа "." (вполне вероятно что этим символом список не ограничивается) в параметре winName при использовании метода window.open(strUrl, winName [, winParams]) ставит любимый IE в ступор (exeption) с "очень внятным и как всегда однозначным" текстом ошибки "Invalid argument"
А, учитывая что код писался сразу и не тривиальный, пришлось потратить пару минут вычленяя грабли - пресловутую точку....
Удачи!
2Илья: Спасибо за полезный ресурс, где локонично удалось собрать от элементарной до топовой информации по теме! И если не затруднит, включи плз., описанную оговорку в статью, чтоб коллеги время на поиски "загадочного" аргумента не теряли! Еще раз удачи!!!
var nW = window.open("https:\\...сайт...", "okno");
nW.document.getElementById("myId"); //ожидается отсутствие узла
или
nW.attachEvent( "onload" , function(){ alert("Loaded")} );
в обоих случаях в IE8 - отказано в доступе. Отказ связан с https или "фишки" ИЕ?
Сайт добавлен в "надежные узлы", настройки скриптов либо"включить", либо "предлагать".
Здравствуйте. Как узнать, открыто ли всплывающее окно? Надо сделать так: При загрузке открывается popup, это легко, а если попап уже есть, то не надо его ещё раз перезагружать. Спасибо.
Подскажите плиз, как открыть ссылку в том же окне, при таком написании открывается новое окно. Прошу прощения за неграмотность в программировании.
в массиве а[] содержится ссылка на страницу, которую нужно открыть.
Подскажите плиз, как открыть ссылку в том же окне, при таком написании открывается новое окно. Прошу прощения за неграмотность в программировании.
в массиве а[] содержится ссылка на страницу, которую нужно открыть.
a href="Javascript:window.open('a[1]');" target="_self"
А как открыть окно, для которого нет url, а есть просто HTML в виде строки. Т.е. надо сделать что-то вроде
window.open("my page content", ....)
Есть такая возможность в JavaScript?
Блин, теги были съедены. Имелось в виду такое:
window.open("_html_ _body_ my page content _body_ _html_", ....)
Вместо подчеркиваний - скобки.
Все браузеры блокируют всплывающие окна, как с этим бороться?
Есть первая страничка "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
Есть первая страничка "1.html", которая создаёт окно "а", из "1.html" можно обращаться к "а" и наоборот с помощью "window.opener", после перехода на вторую страничку "2.html" из окна можно обращаться к ней. Возможно ли из "2.html" обращаться к окну "а"?
1.html:
2.html
А есть возможность показать html элемент по какому-то событию в другом табе (активном) браузера?
На странице есть ссылка:
Требуется открыть в новом окне html-шаблон вида:
и вложить в div документ text/1.html
Пишу скрипт:
Шаблон открывается, но в div ничего не вставляется
Как в таком случае в хроме можно задать имя окна?
Здравствуйте!
Подскажите, пожалуйста, как сделать наоборот, чтобы окно не открывалось отдельно, а открывалось только в новой вкладке браузера?
Что нужно здесь изменить?
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')
}
убрать width=950,height=600 из:
function win()
{
window.open('/<?php echo $catalog ?>/form.php?op=1','','width=950,height=600,status=no,toolbar=no,menubar=no,scrollbars=yes')
}
Подскажите, пожалуйста, как открыть окно в моде приватного просмотра? Можно под какой-то определенный браузер, если универсального решения нет.
Как можно выполнить функцию из текущей страницы в новом окне?
Приветствую!
Прошу взглянуть на сей, казалось бы, нехитрый фрагмент:
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");
Т.е., первые два окна не откроются, но подгрузятся во фрейм, открываемый третьей строкой.
Пытаюсь добиться следующего: дождаться открытия нового фреймового двустворчатого окна (это третья строка приведенного кода), -- и подгрузки в каждую из створок первой и второй строк.
Помогите разобраться в следующей проблеме. Из окна wind открываю дочернее wind1, а из дочернего wind1 следующее дочернее wind 2. При открытии wind1, окно wind не обновляется. А при открытии wind2, окно wind1 перезагружается. Как сделать, чтобы окно wind1 не перезагружалось?
Разобрался. Просто в первом дочернем окне была форма, и из нее вызывалось второе окно. Форму убрал и все заработало
resizable рекомендуется всегда устанавливать явно - и это правильно. Под windows8 в ie10, эта опция по умолчанию стала равной "no".
window.open при асинхронном вызове из колбэка всегда создает новое окно, а не вкладку как в обычном режиме + newWin.focus() перестает работать.
Если кто знает как это побороть добавьте в статью или в каменты.
Как в HTML то всю это конструкцию вставить правильно?? Рабочий бы пример прописали хоть, непонятно, как вставлять. У меня вот так сейчас вставлено в коде, чтобы новое окошко открылось по ссылке:
но тут не могу понять, куда вставить параметры, чтобы не ресайзилось, строчки с адресом не было и т.п. А ваш код наоборот, не понятно как вставить в ссылку. Подскажите! Вместе с var его вставлять или без, или как??
Ничего не понимаю в javascript
Откуда взялся у меня. ???
Копировала уроки в ворде, все открывалось. А сегодня появился вместо ворда этот
значек javascript . Теперь уроки просмотреть не могу. Пропали. Что делать? Пожалуйста подскажите.
Отрабатывать карму и ждать перерождения
А как настроить внешний вид окна? Что бы не видно было рамку окна. а было типа лайт-бокса? Такое вообще возможно?
Как сделать так, чтобы не открывалась в новом окне и даже в новой вкладке, а открывалось только в своём родном окне?
Здравствуйте. Подскажите, как сделать, чтоб новое окно открывалось всем юзерам за исключением нескольких ip? Спасибо.
Здравствуйте.
Подскажите как сделать чтоб окно открывалось в новой вкладке а не в новом окне.
А фокус оставался на предыдущей вкладке?
Спасибо.
Сегодня задали такое задание: после открытия нового окна визуализировать в нем всех потомков тега окна-предка.
Помогите, пожалуйста
А как сделать так чтоб ссылка в отправленном письме открывалась у получателя в том же окне а не в новом ?
подскажите как подправить этот код, чтобы открывалось в этом же окне
$('.hidden-link').click(function(){window.open($(this).data('link'));return false;});
Помогите, пожалуйста...
главное окно
открыть окно
Открыть окно
// генерируем новое окно с кнопкой и ссылкой
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();
}
Подскажите, пожалуйста, как сделать так, чтобы на мобильных устройствах ссылка открывалась в текущем окне, а на ПК - во всплывающем окне фиксированного размера?
Сюда...
//---------------------- IF IS ANDROID, IPhone etc-------------------
if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) )
{ код }
//----------------------END IF IS ANDROID, IPhone etc-------------------
Но в живую еще непроверял.Хром дивелопер реагирует никак...
Здравствуйте гуру!Объясните пожайлуста,почему ифреймы открываються размером с мобильный телефон, а не в оригинальном размере-те на всю страницу? Как это победить???
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()
А что означает thumbs up? Это значение куда ближе подходит:
https://preply.com/question/chto-oznachaet-thumbs-up