Tengo un cuadro de selección que llama window.open(url)
cuando se selecciona un elemento. Firefox abrirá la página en una nueva pestaña de forma predeterminada. Sin embargo, me gustaría que la página se abra en una nueva ventana, no en una nueva pestaña.
¿Cómo puedo lograr esto?
javascript
firefox
Adán
fuente
fuente
Respuestas:
Dele a la ventana un parámetro 'especificaciones' con ancho / alto. Vea aquí todas las opciones posibles.
Cuando especifique un ancho / alto, lo abrirá en una nueva ventana en lugar de una pestaña.
fuente
No necesita usar la altura, solo asegúrese de usar
_blank
, sin ella, se abre en una nueva pestaña.Para una ventana vacía:
Para una URL específica:
fuente
location=0
es necesario cuando se invoca el JS desde un botón o elemento de anclaje.location=0
los parámetros. También sugeriría nombrar la ventana en lugar de usar el_blank
objetivo, de modo que la misma ventana se vuelva a usar si el usuario hace clic varias veces en el elemento que abre la ventana emergente y se encadenafocus()
para que una ventana emergente abierta obtenga el foco:window.open('http://stackoverflow.com', 'Stack_Overflow','location=0').focus();
Puedo estar equivocado, pero por lo que entiendo, esto está controlado por las preferencias del navegador del usuario, y no creo que esto pueda ser anulado.
fuente
Tratar:
Tengo un código que hace lo que dices, pero contiene muchos parámetros. Creo que estos son los mínimos, avíseme si no funciona, publicaré el resto
fuente
OK, después de hacer muchas pruebas, aquí mi conclusión:
Cuando realizas:
o lo que sea que coloque en el campo de destino, esto no cambiará nada: la nueva página se abrirá en una nueva pestaña (así que dependa de las preferencias del usuario)
Si desea que la página se abra en una nueva ventana "real", debe poner un parámetro adicional. Me gusta:
Después de la prueba, parece que el parámetro adicional que utiliza, realmente no importa: este no es el hecho de que haya puesto "este parámetro" o "este otro" que crea la nueva "ventana real", sino el hecho de que hay nuevos parámetros. )
Pero algo está confundido y puede explicar muchas respuestas incorrectas:
Esta:
Y esto:
NO dará el mismo resultado.
En el primer caso, cuando abra una página sin parámetros adicionales, se abrirá en una nueva pestaña . Y en este caso, la segunda llamada también se abrirá en esta pestaña debido al nombre que le dé.
En el segundo caso, como su primera llamada se realiza con un parámetro adicional, la página se abrirá en una nueva " ventana real ". Y en ese caso, incluso si la segunda llamada se realiza sin el parámetro adicional, también se abrirá en esta nueva " ventana real " ... ¡pero la misma pestaña!
Esto significa que la primera llamada es importante ya que decidió dónde colocar la página.
fuente
No deberías necesitarlo. Permita que el usuario tenga las preferencias que desee.
Firefox lo hace de forma predeterminada porque abrir una página en una nueva ventana es molesto y nunca se debe permitir que una página lo haga si eso no es lo que desea el usuario. (Firefox te permite abrir pestañas en una nueva ventana si la configuras de esa manera).
fuente
Puede intentar la siguiente función:
El código HTML para la ejecución:
fuente
popup.location = URL;
? Lawindow.open()
llamada debe abrirlo en la URL correcta y, en su ejemplo de código,URL
no está definido, por lo que recurrirá al objeto de URL experimental (y no ampliamente compatible) . Si bien usarlo para eso es discutible, tengo curiosidad por saber cuáles son las motivaciones para su uso aquí.La clave son los parámetros:
Si proporciona Parámetros [Altura = "", Ancho = ""], se abrirá en nuevas ventanas.
Si NO proporciona parámetros, se abrirá en una nueva pestaña.
Probado en Chrome y Firefox
fuente
Curiosamente, descubrí que si pasa una cadena vacía (a diferencia de una cadena nula o una lista de propiedades) para el tercer atributo de window.open, se abriría en una nueva pestaña para Chrome, Firefox e IE. Si estuvo ausente, el comportamiento fue diferente.
Entonces, esta es mi nueva llamada:
fuente
prueba ese método .....
fuente
Para mí la solución era tener
en el 3er parámetro. Probado en el último FF / Chrome y una versión anterior de IE11
La llamada al método completo que uso está debajo (como me gusta usar un ancho variable):
fuente
Acabo de probar esto con IE (11) y Chrome (54.0.2794.1 SyzyASan canario):
... y se abrió en una nueva ventana.
Lo que significa que Clint pachl tenía razón cuando dijo que proporcionar cualquier parámetro hará que se abra la nueva ventana.
¡Y aparentemente no tiene que ser un parámetro legítimo!
(YMMV: como dije, solo lo probé en dos lugares ... y la próxima actualización podría invalidar los resultados, de cualquier manera)
ETA: Sin embargo, acabo de notar que, en IE, la ventana no tiene decoraciones.
fuente
Respondido aquí . Pero publicarlo nuevamente como referencia.
window.open()
no se abrirá en una pestaña nueva si no ocurre en el evento de clic real. En el ejemplo dado, la url se abre en un evento de clic real. Esto funcionará siempre que el usuario tenga la configuración adecuada en el navegador.Del mismo modo, si está intentando hacer una llamada ajax dentro de la función de clic y desea abrir una ventana en caso de éxito, asegúrese de que está haciendo la llamada ajax con la
async : false
opción establecida.fuente
Creo que no es un problema de propiedades de destino html, pero desactivaste la opción "abrir ventanas nuevas en una pestaña nueva" en la pestaña "pestaña" en el menú "opciones" de Firefox. compruébalo y vuelve a intentarlo.
fuente
Tenía esta misma pregunta pero encontré una solución relativamente simple.
En JavaScript estaba buscando
window.opener !=null;
para determinar si la ventana era una ventana emergente. Si está utilizando un código de detección similar para determinar si la ventana en la que se está representando el sitio es una ventana emergente, puede "desactivarla" fácilmente cuando desee abrir una ventana "nueva" utilizando el nuevo JavaScript de Windows.Simplemente coloque esto en la parte superior de su página para que siempre sea una ventana "nueva" .
Lo uso en la página de inicio de sesión de mi sitio para que los usuarios no obtengan un comportamiento emergente si usan una ventana emergente para navegar a mi sitio.
Incluso podría crear una página de redireccionamiento simple que haga esto y luego se mueva a la URL que le proporcionó. Algo como,
JavaScript en la página principal:
Y luego, usando un pequeño javascript desde aquí , puede obtener la URL y redirigirla.
JavaScript en la página de redireccionamiento:
fuente