Domanda

Sto usando Javascript del window.open per aprire una finestra del browser su un utente scatto alla larghezza specificata e l'altezza (760x581), e questo funziona correttamente su Internet Explorer, Safari e Firefox, ma Google Chrome mi sta dando problemi. Negli altri browser, l'altezza viene correttamente utilizzato come l'altezza del contenuto, ma in Google Chrome sta facendo la finestra attuale del browser 581 pixel di altezza invece dei contenuti. C'è un modo per risolvere questo 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>
È stato utile?

Soluzione

Così ho pasticciato con le cose più e ha scoperto che alcuni browser sostenuto la innerHeight immobili per window.open e il successivo ha lavorato come previsto in tutti i browser con l'altezza contenuto desiderato a 775px con 50px aggiunta a Chrome solo:

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

Ho provato questo in Chrome 6.0.472.63, Firefox 3.6, 3, e 2, IE 8 e 7 e Opera 10.62. Quando ero solo usando height Chrome sarebbe di circa 50px troppo breve e avere barre di scorrimento, ma tutti i browser in precedenza erano soddisfacenti. Con l'aggiunta di proprietà innerHeight insieme a 50px più di quello che voglio che ha funzionato in Chrome, così come tutti gli altri browser.

Aggiornamento: Sembra che questo crea un problema in Safari con una 50px aggiunto di altezza. Esaminerà modi per aggirare questo.

Altri suggerimenti

Il problema ancora persiste (Chrome17 +), se si chiama window.open di altezza = 600, la finestra innerHeight risultato è 564px, che è 36px breve (per la barra del titolo su Windows). L'altezza barra del titolo dipende dalla piattaforma, quindi questo è molto fastidioso.

La mia soluzione è appena aggiunto la differenza all'altezza.

Beh da quello che ho potuto trovare dopo la ricerca di Google per oltre un'ora è che questo è solo come Google Chrome lo fa e dobbiamo utilizzare solo una soluzione. Quello che sto facendo in questo momento a meno che qualcosa di meglio si trova è solo mettendo il seguente JS nella pagina che io sono l'apertura:

if (navigator.appVersion.indexOf('Chrome')>0) {
    window.resizeBy(0, 581 - window.innerHeight);
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top