2011-09-17 14 views
22

Me gustaría poder cambiar el tamaño de la ventana del navegador con JavaScript. No quiero usar jQuery, y cuanto más pequeño sea el código, mejor, pero tiene que funcionar en todos los principales navegadores, incluido Chrome.ventana del navegador de redimensionamiento del navegador cruzado en JavaScript

¿Soluciones?

¡Gracias por la ayuda!

P.S. Las etiquetas con las que se etiquetó esta pregunta se deben combinar, pero no sé cómo.

navegador ----------- mismo que -> navegador web

entre navegadores ---- mismo que -> compatibilidad del navegador

+0

¿Por qué no quieres usar jQuery (u otro marco útil)? – Eddie

+1

@Eddie Esta es solo una tarea muy pequeña, y prefiero no incluir una biblioteca muy grande. –

Respuesta

20

window.resizeTo(width, height);

El El problema que puede enfrentar es que los navegadores de hoy en día pueden impedir que en la configuración no pueda cambiar el tamaño de la ventana. No hay forma de evitar eso.

Chrome no lo permitirá. Won't Fix Bug

IE se basa en security zones

+0

Esto funciona en Firefox 6 pero no en Chrome 13 o IE8. –

+0

Porque los navegadores modernos lo bloquean. Chrome [no corregirá] (http://code.google.com/p/chromium/issues/detail?id=2091) – epascarello

+0

IE Security http://msdn.microsoft.com/en-us/library/ms536723 (v = vs.85) .aspx – epascarello

6

No hay camino para una página Web para cambiar el tamaño de la ventana principal del navegador en Chrome. El código JavaScript solo está permitido para cambiar el tamaño de las ventanas emergentes.

10

El hecho es que Chrome, Firefox y IEs más nuevos no permiten el cambio de tamaño de las ventanas y ventanas con pestañas no abiertas por window.open() (Chrome al menos).

Pero para las ventanas emergentes es factible en su mayor parte, a menos que la configuración de seguridad en el navegador bloquea esa funcionalidad. Sin embargo, usar window.resizeTo() es complicado. Use window.resizeBy() en su lugar.

Chrome tiene una bug conseguir el tamaño de una ventana emergente para pronto, así que tiene que trabajar alrededor de eso.

if(navigator.userAgent.toLowerCase().indexOf('chrome') > -1) 
    var t = setTimeout("resize()", 200); 
else 
    resize(); 

function resize() { 
    var innerWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; 
    var innerHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; 
    var targetWidth = 800; 
    var targetHeight = 600; 
    window.resizeBy(targetWidth-innerWidth, targetHeight-innerHeight); 
} 
Cuestiones relacionadas