Cross-Browser Issues

Here is a list of cross-browser scripts.

Inner width - the inner dimensions of the window or frame. var x,y; if (self.innerHeight) // all except Explorer { x = self.innerWidth; y = self.innerHeight; } else if (document.documentElement && document.documentElement.clientHeight) // Explorer 6 Strict Mode { x = document.documentElement.clientWidth; y = document.documentElement.clientHeight; } else if (document.body) // other Explorers { x = document.body.clientWidth; y = document.body.clientHeight; } Scrolling offset - how much the page has scrolled. var x,y; if (self.pageYOffset) // all except Explorer { x = self.pageXOffset; y = self.pageYOffset; } else if (document.documentElement && document.documentElement.scrollTop) // Explorer 6 Strict { x = document.documentElement.scrollLeft; y = document.documentElement.scrollTop; } else if (document.body) // all other Explorers { x = document.body.scrollLeft; y = document.body.scrollTop; } Page height - the height of the total page (usually the body element). This is a tricky one, some browsers require scrollHeight, others offsetHeight, but all browsers support both properties. Therefore I see which property has the larger value. This means the page height the script below gives is never sm aller than the window height. var x,y; var test1 = document.body.scrollHeight; var test2 = document.body.offsetHeight if (test1 > test2) // all but Explorer Mac { x = document.body.scrollWidth; y = document.body.scrollHeight; } else // Explorer Mac; //would also work in Explorer 6 Strict, Mozilla and Safari { x = document.body.offsetWidth; y = document.body.offsetHeight; }