hta 窗口_如何获取HTA窗口的大小?

You can SET the size of a HTA window but I can't find a way to GET its size.

All I can think of is reading document.body.offsetWidth and .offsetHeight, but those give you the viewport size not the actual window size.

Is it possible to know that?

解决方案

It seems there are no properties or methods to get that information. The now beta-released IE9 has the new properties outterWidth and outterHeight, but that is not an option for now.

So I devised a workaround for this:

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) ;

}

What that function does is to create two new methods for the window object: window.getWidth() and window.getHeight(). They will get the actual size of the window.

The function requires the existence of the body object so it has to be executed after the BODY tag.

And now that we are at it, the same problem applies for the window position. You can't get the actual window position. What you can get is the viewport position relative to the screen.

So the same workaroud serves for this as well:

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) ;

}

Likewise, the function creates two new methods that will retrieve the actual window position: window.getScreenX() and window.getScreenY()

Problem solved. I'll let you guys figure out how the function works ;)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值