2012-04-24 23 views
37

Estoy usando Javascript self.open() para abrir un enlace en una nueva ventana y me gustaría que esa ventana se maximice. Probé la opción fullscreen=yes, que realmente no hace lo que quiero. Estoy utilizando a continuación código:¿Cómo abrir la ventana maximizada con Javascript?

self.open(pageLoc,popUpName,'height=1600,width=1800,resizable=yes,scrollbars=yes,toolbar=yes,menubar=yes,location=yes'); 

Si yo también menciono fullscreen=yes, a continuación, la ventana se abre como se presiona F11. Pero no lo quiero así. Lo que quiero es cuando hago doble clic en IE y hago clic en el ícono de maximizar en la esquina superior derecha.

Como he dado el valor height y width tan grande, está cerca de la ventana maximizada pero no de la ventana maximizada real. (La razón por la que digo esto porque incluso ahora si hago clic en el botón de maximizar, aún más expans poco)

+2

[Relacionado] (http://stackoverflow.com/q/4378444/693207) –

+0

@Juren Thelen.Como mencioné, incluso después de una gran altura y ancho, no da un efecto real maximizado. –

+0

@ Jürgen, creo que esa puede ser la respuesta. – ThdK

Respuesta

67
var params = [ 
    'height='+screen.height, 
    'width='+screen.width, 
    'fullscreen=yes' // only works in IE, but here for completeness 
].join(','); 
    // and any other options from 
    // https://developer.mozilla.org/en/DOM/window.open 

var popup = window.open('http://www.google.com', 'popup_window', params); 
popup.moveTo(0,0); 

favor, abstenerse de abrir la ventana emergente a menos que el usuario realmente lo quiera, de lo contrario lo maldecirán y pondrán en la lista negra su sitio. ;-)

edit: Vaya, como señala Joren Van Severen en un comentario, esto puede no tener en cuenta las barras de tareas y las decoraciones de las ventanas (de una manera posiblemente dependiente del navegador). Ten cuidado Parece que ignorar la altura y el ancho (solo param es fullscreen=yes) parece funcionar en Chrome y quizás Firefox también; la funcionalidad original de "pantalla completa" se ha desactivado en Firefox por ser desagradable, pero ha sido reemplazada por la maximización. Esto contradice directamente la información en la misma página de https://developer.mozilla.org/en/DOM/window.open que dice que maximizar la ventana es imposible. Esta 'característica' puede o no ser compatible dependiendo del navegador.

+6

Esto abre una ventana mayor que una ventana maximizada normal. La altura de una ventana maximizada es screen.height - height de la barra de tareas (y algunas de las decoraciones de las ventanas también parecen). –

+1

que es screen.availHeight resp. screen.availWidth. De todos modos, el tamaño todavía no se ajusta exactamente ... – cschuff

9
window.open('your_url', 'popup_name','height=' + screen.height + ',width=' + screen.width + ',resizable=yes,scrollbars=yes,toolbar=yes,menubar=yes,location=yes') 
+1

lo único que ha cambiado es la ventana en lugar de uno mismo. ¿Cual es la diferencia? –

1

Pedido esta ventana jQuery plugin: http://fstoke.me/jquery/window/

// create a window 
sampleWnd = $.window({ 
    ..... 
}); 

// resize the window by passed w,h parameter 
sampleWnd.resize(screen.width, screen.height); 
1

Si uso Firefox entonces screen.width y screen.height funciona bien, pero en IE y Chrome no funcionan correctamente, sino que se abre con el tamaño mínimo.

Y sí, traté de dar números demasiado grandes como 10000 para height y width pero no exactamente el efecto maximizado.

3

La mejor solución que pude encontrar en la actualidad para abrir una ventana maximizada es (Internet Explorer 11, Chrome 49, Firefox 45):

var popup = window.open("your_url", "popup", "fullscreen"); 
    if (popup.outerWidth < screen.availWidth || popup.outerHeight < screen.availHeight) 
    { 
    popup.moveTo(0,0); 
    popup.resizeTo(screen.availWidth, screen.availHeight); 
    } 

ver https://jsfiddle.net/8xwocrp6/7/

Nota 1 : No funciona en Edge (13.1058686). No estoy seguro de si es un error o si está diseñado (he rellenado a bug report, veremos qué tienen que decir al respecto). Aquí es una solución:

if (navigator.userAgent.match(/Edge\/\d+/g)) 
{ 
    return window.open("your_url", "popup", "width=" + screen.width + ",height=" + screen.height); 
} 

Nota 2: moveTo o resizeTo no funcionará (Acceso denegado) si la ventana que está abriendo es de otro dominio.

Cuestiones relacionadas