Как определить, является ли открытое окно всплывающим или вкладкой?

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

Есть ли какое-либо свойство, с помощью которого я могу определить, было ли открытое окно всплывающей или новой вкладкой?

Спасибо Малкольм Икс

 indra19 февр. 2013 г., 10:52
Возможный дубликатstackoverflow.com/questions/10240398/...

Ответы на вопрос(2)

Я не совсем уверен, что вы имеете в виду в своем вопросе, но из того, что я понимаю, вы можете использовать атрибут target HTML:

_blank  Opens the linked document in a new window or tab
_self   Opens the linked document in the same frame as it was clicked (this is default)
_parent     Opens the linked document in the parent frame
_top    Opens the linked document in the full body of the window

framename Открывает связанный документ в именованном фрейме

Источник:http://www.w3schools.com/tags/att_a_target.asp

 indra19 февр. 2013 г., 12:19
@Crimsoniris - повторяю обычное предостережение о www.w3fools.com ;-)
 malcolmX19 февр. 2013 г., 11:20
Здравствуйте crimsoniris, как я уже упоминал в своем посте, я могу открыть новое окно (будь то всплывающее окно или новая вкладка). Мой прямой вопрос: есть ли какая-нибудь встроенная функция, с помощью которой я могу понять, было ли само открытое окно новой вкладкой или всплывающим окном? P: S-By всплывающее окно означает, что окно открывается поверх текущего окна. Спасибо за быстрый ответ кстати
Решение Вопроса

Редактировать: Я изучил это немного дальше.

Похоже, нет ничего другоготип" на этих окнах просто разные варианты. Я нашел способ проверить, была ли это вкладка или окно, это проверитьwindow.menubar.visible, Для вкладки, которая является полным и нормальным окном, этоtrueи для всплывающего меню скрыто и, следовательно,false, То же самое относится и к.window.toolbar.visible

Работает в FF и Chrome как минимум. К сожалению, не в IE. (Тестирование сделано в IE8, это версия, которую я установил. Для тестирования, конечно ..)

Пример:

if(window.menubar.visible) {
    //Tab
} else {
    //"Child" Window
}

Нашел эту ветку:Internet Explorer 8 JS Ошибка: 'window.toolbar.visible» является нулем или не объектом

Если вы указываете ширину и высоту, это означает, что вы также должны указатьname параметр. Это можно использовать таким же образомtarget вa тег используется, и по умолчанию._blank

Если вы не укажете ширину и высоту, я полагаю, вы тоже нет указатьname и поэтому он открывается сname=_blank, что означает новую вкладку.

Если вы указываете ширину и высоту, вы настраиваетеname? Это приводит к появлению дочернего окна. Если вы указали имя или пустую строку в качестве имени, я предлагаю вам попробоватьname:_blank если вы хотите, чтобы это была новая вкладка.

Если окно было открыто с именем, вы всегда можетеwindow.parent из дочернего окна. Если вы открываете с_blank Я не уверен, что вы можете получитьwindow.parent

Открытое окно w3schools

 indra19 февр. 2013 г., 12:12
@malcolmX - ты пробовал?window.parent == window
 indra19 февр. 2013 г., 14:01
Можете ли вы опубликовать код на jsfiddle.net или codepen.io?
 indra19 февр. 2013 г., 10:58
Это, наверное, лучше, ты неt использовать w3schools в качестве справочного материала.
 Robert Fricke19 февр. 2013 г., 11:28
Почему это, вероятно, лучше? Я многому научился оттуда в первые годы.
 malcolmX19 февр. 2013 г., 11:32
@ 5arx я проверил этот пост, но эта функциональность не работает :(
 malcolmX19 февр. 2013 г., 11:46
@ 5arx window.location.href == window.opener.location.href все время возвращает мне ложь .... Есть ли другая альтернатива?
 Robert Fricke21 февр. 2013 г., 20:34
Мое редактирование тебе вообще помогает? Я понимаю, что IE довольно важен, хотя
 Robert Fricke19 февр. 2013 г., 13:17
Я также озадачен этим сейчас .. кажется,window.parent.parent.parent... и так далее возвращает окно в вечность. И я также заметилwindow.open() иногда открывает реальное окно в новой вкладке, а иногда всплывающее дочернее окно. Я предполагаю, что это связано с тем, как событие вызывается, то есть: если окно запускается событием, вызванным клавишей или мышью, окно открывается. Если только простой код срабатываетwindow.open() тогда всплывающее окно открывается. Когда ваш сайт открыт в немs собственное окно, это всплывающее окно, где вы не можете изменить адрес? Или нормальное окно?
 malcolmX19 февр. 2013 г., 12:57
@ 5arx да я так и сделал ... но все равнот работа
 RobG20 нояб. 2013 г., 13:13
В сафариwindow.menubar.visible ложно для окон и вкладок, поэтому не особенно хороший метод обнаружения.window.menubar не является частью какой-либо спецификации W3C, поддержка ограниченаДОМ 0 "то есть функции, которые существовали в популярных браузерах до стандартов W3C DOM (более 15 лет назад) и не были формально стандартизированы.
 malcolmX21 февр. 2013 г., 07:16
Есть ли способ классифицировать их как всплывающие окна или как новую вкладку?
 malcolmX19 февр. 2013 г., 15:20
jsfiddle.net/shadowstrike/VhNyG/6 ->пожалуйста, посмотрите на это. :)
 indra19 февр. 2013 г., 12:06
@Robert Fricke - W3Schools обычно не считается авторитетным авторитетом в сообществе SO:meta.stackoverflow.com/search?q=w3schools (смотрите такжеw3fools.com), есть сайты с лучшим содержанием и более точной информацией. напримерdeveloper.mozilla.org
 malcolmX25 февр. 2013 г., 11:30
Спасибо, Роберт. Ты спас меня. Для IE этоне работает, хотя. Но в любом случае мы неУ меня слишком много клиентов для IE. В любом случае, спасибо и ура. :)
 malcolmX19 февр. 2013 г., 11:30
Привет, Роберт Фрик, Спасибо за быстрый ответ. Я сделал веб-страницу, которая открывается кнопкой третьей стороны. Я неУ меня нет никакого контроля над этой кнопкой. Изначально открывалось всплывающее окно, если я нажимал на эту стороннюю кнопку. Атрибуты были установлены ими. Есть еще один сторонний персонал, который создал другую кнопку, которая открывает ту же веб-страницу. если я нажму на эту кнопку, она откроется как новая вкладка. Итак, я подумал, есть ли способ отличить механизм открытия окна, т.е. был ли он открыт как новая вкладка или как всплывающее окно поверх текущего окна.?
 malcolmX19 февр. 2013 г., 13:33
Это'вот так Два разных третьих лица создали кнопку, которая открывает мой контент. Один открывается на вкладке, а другой открывается во всплывающем окне. Я пытаюсь развернуть всплывающее окно, используя функциональность window.resizeTo. Я добавил этот фрагмент кода в свой Таким образом, независимо от высоты, добавленной третьей стороной, она переопределяется с помощью моей функции window.resizeTo. Так что всплывающее окно откроется во весь экран. Другая кнопка, которая открывалась как вкладка, должна открываться только как вкладка. Но она открывается как новое всплывающее окно с screen.height и screen.width. Надеюсь, вы получите картину сейчас.

Ваш ответ на вопрос