Pregunta

Estoy utilizando de window.open para abrir una ventana del navegador en un usuario haga clic en un ancho especificado y la altura (760x581) Javascript, y esto funciona correctamente en Internet Explorer, Safari y Firefox, Google Chrome, pero me está dando problemas. En los otros navegadores, la altura se utiliza correctamente como la altura del contenido, pero en Google Chrome que está haciendo la ventana actual del navegador 581 píxeles de alto en lugar del contenido. ¿Hay una manera de solucionar este problema?

<a href="http://domain.com/example.php" onclick="window.open('http://domain.com/example.php', '', 'width=760, height=581, top=15, left=15, toolbar=0, menubar=0, scrollbars=1, resizable=1, copyhistory=0, location=0, directories=0, status=1, titlebar=1, personalbar=0');return false">click here</a>
¿Fue útil?

Solución

Así que se metió con cosas más y descubrió que algunos navegadores apoyaron la innerHeight propiedad de window.open y los siguientes trabajó como se esperaba en todos los navegadores con la altura del contenido deseado a 775px con 50px añadido a Chrome solamente:

window.open($(this).attr('href'), 'videoplayer',
   'width=1242, height=775, innerHeight=825, location=no, menubar=no, status=no, titlebar=no, scrollbars=no'
);

I probado esto en Chrome 6.0.472.63, Firefox 3.6, 3 y 2, IE 8 y 7, y Opera 10.62. Cuando sólo estaba usando height Chrome sería de alrededor de 50 px demasiado corto y tener barras de desplazamiento, pero por encima de todos los navegadores estaban bien. Con el conjunto de propiedades innerHeight añadido a 50px más de lo que yo quiero que trabajó en Chrome, así como todos los demás navegadores.

Actualización: Parece que esto crea un problema en Safari con un añadido de 50 px de altura. Analizará las maneras de conseguir alrededor de eso.

Otros consejos

El problema aún persiste (Chrome17 +), si se llama a window.open con la altura = 600, la ventana innerHeight resultado es 564px, que es 36 píxeles corta (por la barra de título en Windows). La altura de la barra de título depende de la plataforma así que esto es muy molesto.

Mi solución se acaba de añadir la diferencia de la altura.

Bueno por lo que he sido capaz de encontrar después de buscar en Google para más de una hora es que esto es sólo la forma en Google Chrome lo hace y tenemos que sólo tiene que utilizar una solución. Lo que estoy haciendo en este momento a menos que algo mejor se encuentra es sólo poner el siguiente JS en la página que estoy apertura:

if (navigator.appVersion.indexOf('Chrome')>0) {
    window.resizeBy(0, 581 - window.innerHeight);
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top