【问题标题】:HTA Document.Body.OffsetHeight with doctype带有文档类型的 HTA Document.Body.OffsetHeight
【发布时间】:2013-07-08 16:53:16
【问题描述】:

请考虑这个 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,这是没有窗框的窗口的实际大小。

现在,如果我将 &lt;!DOCTYPE html&gt; 添加到此 HTA 中,我会得到:107x19,其中宽度实际上是正确的,但高度不正确。
如果我什至想使用&lt;meta http-equiv="X-UA-Compatible" content="IE=EDGE"&gt;,我会得到:107x0

我的 HTA 取决于 doctype,我无法删除它。 OTOH,我希望能够检测实际的窗口大小并对其采取行动。

有人可以解释为什么Document.Body.OffsetHeight 会这样,或者可以提供其他解决方案来检测正确的窗口大小(主体元素大小)吗?

【问题讨论】:

  • 我现在看到了,但它使用相同的变量 Document.Body.OffsetHeight,据我报道,当与 doctype 声明一起使用时,它不包含有意义的值 - 无论窗口大小,它总是返回相同的值。跨度>

标签: internet-explorer hta


【解决方案1】:

默认情况下,HTA 处于向后兼容模式,其中 document.body.offsetWidthdocument.body.offsetHeight 返回预期结果。

使用 doctype 声明时,HTA 会进入标准模式 (CSS1Compat),在这种情况下应该使用它:document.documentElement.offsetWidthdocument.documentElement.offsetHeight

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2013-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多