2011-09-17 11 views
22

Mi piacerebbe poter ridimensionare la finestra del browser con JavaScript. Non voglio usare jQuery e più piccolo è il codice, meglio è, ma deve funzionare in tutti i principali browser, incluso Chrome.finestra del browser di ridimensionamento cross-browser in JavaScript

Qualche soluzione?

Grazie per l'aiuto!

P.S. I tag con cui questa domanda è stata taggata dovrebbero essere combinati ma non so come.

del browser ----------- stessa -> browser web

cross-browser ---- stesso -> la compatibilità del browser

+0

Perché non si desidera utilizzare jQuery (o qualche altro framework utile)? – Eddie

+1

@Eddie Questo è solo un compito molto piccolo, e preferirei non includere una libreria molto grande. –

risposta

20

window.resizeTo(width, height);

Il il problema che potresti incontrare è che i browser moderni possono impedire alle impostazioni di non essere in grado di ridimensionare la finestra. Non c'è modo di aggirare questo.

Chrome non lo consente. Won't Fix Bug

IE si basa su security zones

+0

Funziona con Firefox 6 ma non con Chrome 13 o IE8. –

+0

Perché i browser moderni lo bloccano. Chrome [non verrà risolto] (http://code.google.com/p/chromium/issues/detail?id=2091) – epascarello

+0

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

6

Non c'è modo per una pagina web per ridimensionare la finestra principale del browser in Chrome. Il codice JavaScript è consentito solo per ridimensionare le finestre popup.

10

Il fatto è che Chrome, Firefox e IE più recenti non consentono il ridimensionamento di finestre e finestre a schede non aperte da window.open() (Chrome almeno).

Ma per i popup è fattibile per la maggior parte, a meno che le impostazioni di sicurezza nel browser non blocchino tale funzionalità. Tuttavia utilizzando window.resizeTo() è complicato. Utilizzare invece window.resizeBy().

Chrome ha un bug che diventa presto la dimensione di una finestra popup, quindi è necessario aggirare il problema.

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); 
} 
Problemi correlati