Кажется, что нет свойств или методов для получения этой информации.IE9, выпущенный сейчас в бета-версии, имеет новые свойства outterWidth
и outterHeight
, но на данный момент это не вариант.
Поэтому я разработал обходной путь для этого:
function addWinSizeGetterFuncs(){
var currViewportWidth = document.body.offsetWidth ;
var currViewportHeight = document.body.offsetHeight ;
resizeTo(currViewportWidth,currViewportHeight) ;
var chromeWidth = currViewportWidth-document.body.offsetWidth ;
var chromeHeight = currViewportHeight-document.body.offsetHeight ;
resizeTo(currViewportWidth+chromeWidth,currViewportHeight+chromeHeight) ;
window.getWidth = new Function('return document.body.offsetWidth+'+chromeWidth) ;
window.getHeight = new Function('return document.body.offsetHeight+'+chromeHeight) ;
}
Эта функция создает два новых метода для объекта window
: window.getWidth()
и window.getHeight()
.Они получат фактический размер окна.
Функция требует существования объекта body
, поэтому ее необходимо выполнить после тега BODY
.
И теперь, когда мы находимся на этом, та же проблема относится к положению окна.Вы не можете получить фактическую позицию окна.То, что вы можете получить, это положение окна просмотра относительно экрана.Таким образом, для этого также используется то же самое рабочее значение:
function addWinPosGetterFuncs(){
var currViewportLeft = screenLeft ;
var currViewportTop = screenTop ;
moveTo(currViewportLeft,currViewportTop) ;
var viewportOffsetX = screenLeft-currViewportLeft ;
var viewportOffsetY = screenTop-currViewportTop ;
moveTo(currViewportLeft-viewportOffsetX,currViewportTop-viewportOffsetY) ;
window.getScreenX = new Function('return screenLeft-'+viewportOffsetX) ;
window.getScreenY = new Function('return screenTop-'+viewportOffsetY) ;
}
Аналогично, функция создает два новых метода, которые будут извлекать фактическую позицию окна: window.getScreenX()
и window.getScreenY()
Проблема решена.Я дам вам, ребята, понять, как работает функция;)