web-dev-qa-db-ger.com

Festlegen einer Mindestgröße für eine Fensterminimierung des Browsers?

Gibt es eine Möglichkeit, die Mindestgröße eines Browserfensters für alle Browser manuell festzulegen?

11
Human Being

Du kannst es versuchen 

body {  min-width:600px; }

Sie erhalten eine horizontale Bildlaufleiste, wenn der Darstellungsbereich weniger als 600 Pixel beträgt. Dies funktioniert nur in modernen Browsern, die eine CSS-Eigenschaft mit minimaler Breite unterstützen.

Ich glaube nicht, dass es möglich ist, die Größenänderung des Benutzers einzuschränken. 

19
Gurpreet Singh

Sie müssen Javascript verwenden und das betreffende Fenster erstellen, damit dies meistens funktioniert, da Bugs mit Registern nicht die Größe des Fensters mit anderen Registerkarten ändern können. Selbst dann lassen einige Browser das nicht zu.

Mit window.open können Sie ein gegebenes Fenster der Größe 640 * 480 erstellen, indem Sie Folgendes angeben:

window.open('http://www.your.url/','yourWindowsName','width=640,height=480');

Innerhalb des Fensters können Sie versuchen, resizeTo height und width, die vom resize-Ereignishandler wie folgt ausgelöst werden:

function resizeToMinimum(){
  var minimum    = [640, 480];
  var current    = [window.outerWidth, window.outerHeight];
  var restricted = [];
  var i          = 2;

  while(i-- > 0){
    restricted[i] = minimum[i] > current[i] ? minimum[i] : current[i];
  }

  window.resizeTo(current[0], current[1]);
}

window.addEventListener('resize', resizeToMinimum, false)

Sie sollten berücksichtigen, dass beide oben genannten Verhaltensweisen umstritten sind und dass das, was Sie beschreiben, die Freiheit des Benutzers einschränkt, seinen Browser so zu verwenden, wie er es für richtig hält. Daher würde ich nicht erwarten, dass dies überall funktioniert - aber an Orten, an denen dies der Fall ist, ist dies der Code, mit dem Sie dies tun können.

20
Barney
function resizeToMinimum(w,h){
    w=w>window.outerWidth?w:window.outerWidth;
    h=h>window.outerHeight?h:window.outerHeight;
    window.resizeTo(w, h);
};
window.addEventListener('resize', function(){resizeToMinimum(100,100)}, false)
1
Tito100

Hier ist meine Lösung zur Gewährleistung der tatsächlichen Mindestbreite und -höhe des Inhalts, einschließlich der "Chrome" -Dimensionen verschiedener Browser. Dies funktioniert nicht mit Firefox, aber ich habe es in Edge und Chrome getestet.

function ensureMinimumWindowSize(width, height) {
    var tooThin = (width > window.innerWidth);
    var tooShort = (height > window.innerHeight);

    if (tooThin || tooShort) {
        var deltaWidth = window.outerWidth - window.innerWidth;
        var deltaHeight = window.outerHeight - window.innerHeight;

        width = tooThin ? width + deltaWidth : window.outerWidth;
        height = tooShort ? height + deltaHeight : window.outerHeight;

        // Edge not reporting window outer size correctly
        if (/Edge/i.test(navigator.userAgent)) {
            width -= 16;
            height -= 8;
        }

        window.resizeTo(width, height);
    }
}

var resizeTimer;
window.addEventListener('resize', function(event) {
    clearTimeout(resizeTimer);
    resizeTimer = setTimeout(function () {
        ensureMinimumWindowSize(<width>,<height>);
    }, 250);
}, false);
0