How do I get the size of the browser window using Prototype.js?

15,761

Solution 1

This is my solution that gives the same values as the Web Developer toolbar in Firefox.

var WindowSize = Class.create({
    width: function()
    {
        var myWidth = 0;
        if (typeof(window.innerWidth) == 'number')
        {
            //Non-IE
            myWidth = window.innerWidth;
        }
        else if (document.documentElement && document.documentElement.clientWidth)
        {
            //IE 6+ in 'standards compliant mode'
            myWidth = document.documentElement.clientWidth;
        }
        else if (document.body && document.body.clientWidth)
        {
            //IE 4 compatible
            myWidth = document.body.clientWidth;
        }
        return myWidth;
    },
    height: function()
    {
        var myHeight = 0;
        if (typeof(window.innerHeight) == 'number')
        {
            //Non-IE
            myHeight = window.innerHeight;
        }
        else if (document.documentElement && document.documentElement.clientHeight)
        {
            //IE 6+ in 'standards compliant mode'
            myHeight = document.documentElement.clientHeight;
        }
        else if (document.body && document.body.clientHeight)
        {
            //IE 4 compatible
            myHeight = document.body.clientHeight;
        }
        return myHeight;
    }
});

Solution 2

According to the Prototype API documentation:

var viewport = document.viewport.getDimensions(); // Gets the viewport as an object literal
var width = viewport.width; // Usable window width
var height = viewport.height; // Usable window height

Solution 3

And the same idea but more compact:

var WindowSize = Class.create({
    width: window.innerWidth || (window.document.documentElement.clientWidth || window.document.body.clientWidth),
    height: window.innerHeight || (window.document.documentElement.clientHeight || window.document.body.clientHeight)
});

Solution 4

this works on all modern browser and ie6+:

var w = document.documentElement.clientWidth;
var h = document.documentElement.clientHeight;

A correct Doctype is required

Share:
15,761
DaveC
Author by

DaveC

Senior web developer.

Updated on June 07, 2022

Comments

  • DaveC
    DaveC about 2 years

    How do I get the size of the browser window using Prototype.js version 1.6.0.3?

  • DaveC
    DaveC about 15 years
    The width is different to what I get using Javascript and also the value from the Web Developer toolbar in Firefox. It is close enough in my this though