请考虑此HTA:
<html>
<head>
<title>My HTML application</title>
<HTA:APPLICATION
APPLICATIONNAME="My HTML application"
ID="MyHTMLapplication"
SCROLL="No"
VERSION="1.0"/>
</head>
<script language="VBScript">
Sub Window_OnLoad
ResizeTo 100, 100
msgbox Document.Body.OffsetWidth & "x" & Document.Body.OffsetHeight
End Sub
</script>
<body style="border:0;margin:0"></body>
</html>
在我的电脑上报告: 111x66 ,这是没有窗框的窗口的实际尺寸。
现在,如果我将<!DOCTYPE html>
添加到此HTA,我会得到: 107x19 ,其中宽度实际上是正确的,但不是高度。
如果我甚至想使用<meta http-equiv="X-UA-Compatible" content="IE=EDGE">
,我会得到: 107x0
我的HTA取决于doctype,我无法将其删除。 OTOH我希望能够检测实际窗口大小并对其进行操作。
有人可以解释为什么Document.Body.OffsetHeight
表现得像这样,或者可能提供其他解决方案来检测正确的窗口大小(正文元素大小)?
答案 0 :(得分:0)
默认情况下,HTA处于向后兼容模式,其中document.body.offsetWidth
和document.body.offsetHeight
返回预期结果。
使用doctype声明HTA转换为标准模式(CSS1Compat),在这种情况下应该使用它:document.documentElement.offsetWidth
和document.documentElement.offsetHeight