Désactiver la taille de la fenêtre du navigateur

Pour commencer … Je n'ai aucune intention sinistre de soumettre les utilisateurs aux fenêtres pop-up ou quelque chose comme ça. Je veux simplement empêcher un utilisateur de redimensionner la fenêtre du navigateur d'une page Web vers laquelle ils ont déjà navigué (c'est-à-dire que je n'ai pas accès à / ne veux pas utiliser window.open ();). Je fais des recherches pendant un bon moment et je ne trouve pas une réponse directe.

Je me sentais comme si j'étais sur la bonne voie avec quelque chose comme suit:

$(window).resize(function() { var wWidth = window.width, wHeight = window.height; window.resizeBy(wWidth, wHeight); }); 

… en vain. Je dois imaginer que cela est possible. Est-ce? Dans l'affirmative, j'apprécierais certainement l'aide.

Merci

Vous pouvez d'abord déterminer une taille définie.

 var size = [window.width,window.height]; //public variable 

Ensuite, procédez comme suit:

 $(window).resize(function(){ window.resizeTo(size[0],size[1]); }); 

Demo: http://jsfiddle.net/DerekL/xeway917/


Q: Cela ne provoquera-t-il pas une boucle infinie de redimensionnement? – user1147171

Belle question. Cela ne provoquera pas une boucle infinie de redimensionnement. La spécification du W3C indique que l'événement de resize doit être envoyé uniquement lorsqu'une vue de document a été redimensionnée. Lorsque la fonction resizeTo tente d'exécuter la deuxième fois, la fenêtre aura exactement la même dimension que celle définie, et le navigateur ne déclenchera pas l'événement de redimensionnement car les dimensions n'ont pas été modifiées.

J'avais besoin de le faire aujourd'hui (pour un panneau ouvert par une extension chrome), mais je devais permettre à l'utilisateur de modifier la hauteur de la fenêtre, mais les empêcher de changer la largeur de la fenêtre

@ La solution de Derek m'a presque achevée, mais je devais la régler pour permettre des changements de hauteur et, à cause de cela, une boucle de redimensionnement sans fin était possible, donc je devais éviter cela aussi. C'est ma version de la réponse de Dereck qui fonctionne très bien pour moi:

 var couponWindow = { width: $(window).width(), height: $(window).height(), resizing: false }; var $w=$(window); $w.resize(function() { if ($w.width() != couponWindow.width && !couponWindow.resizing) { couponWindow.resizing = true; window.resizeTo(couponWindow.width, $w.height()); } couponWindow.resizing = false; });