views:

985

answers:

3

For various silly reasons, I'd like to be able to detect the rectangle of the browser window on screen. Title bar and all.

Is this possible, or is JavaScript limited to the view port of its page?

Edit: I may have been unclear, but view port is the portion of the page that's visible in the window. This may not be a term commonly used with browsers, but it's common in graphics.

A: 

Copy pasted from google first result:

// Browser Window Size and Position
// copyright Stephen Chapman, 3rd Jan 2005, 8th Dec 2005
// you may copy these functions but please keep the copyright notice as well
function pageWidth() 
{
return window.innerWidth != null? window.innerWidth : document.documentElement && document.documentElement.clientWidth ?  document.documentElement.clientWidth : document.body != null ? document.body.clientWidth : null;
} 
function pageHeight() 
{
return  window.innerHeight != null? window.innerHeight : document.documentElement && document.documentElement.clientHeight ?  document.documentElement.clientHeight : document.body != null? document.body.clientHeight : null;
} 
function posLeft() 
{
return typeof window.pageXOffset != 'undefined' ? window.pageXOffset :document.documentElement && document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ? document.body.scrollLeft : 0;
} 
function posTop() 
{
return typeof window.pageYOffset != 'undefined' ?  window.pageYOffset : document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ? document.body.scrollTop : 0;
} 
function posRight() 
{
return posLeft()+pageWidth();
} 
function posBottom() 
{
return posTop()+pageHeight();
}
Saiyine
From the same page: "To be able to determine the available space within the browser window and the current position of that window within the current web page, you need to copy the following script and attach it to the head section of your page." I think this means viewport.
Allain Lalonde
Double checked, and this does not do what I want. When my Window is in the middle of the screen, alert(posLeft()) returns 0.
Allain Lalonde
pageXOffset returns "Returns the number of pixels that the document has already been scrolled horizontally." - not the offset on the screen
matt b
+4  A: 

For IE:

X - window.screenLeft
Y - window.screenTop

For everything else:

X - window.screenX
Y - window.screenY

Keep in mind, implementations vary. Beware of multi-monitor setups...

Shog9
+5  A: 

Take a look at the following properties:

(These won't give you the window size or position, but may allow you to correctly interpret them when operating on a system with multiple monitors)

matt b