HTA Document.Body.OffsetHeight с типом документа

Пожалуйста, обратите внимание на этот 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 зависит от типа документа, и я не могу его удалить. OTOH Я хочу иметь возможность определять фактический размер окна и действовать в соответствии с ним.

Может ли кто-нибудь объяснить, почему Document.Body.OffsetHeight ведет себя так, или, может быть, предоставить другое решение для определения правильного размера окна (размера элемента тела)?


person theta    schedule 08.07.2013    source источник
comment
Вы проверили stackoverflow.com/questions/5503242/?   -  person EricLaw    schedule 08.07.2013
comment
Я видел это сейчас, но он использует ту же переменную Document.Body.OffsetHeight, которая, как я уже сообщал, не содержит значимого значения при использовании с объявлением doctype - она ​​всегда возвращает одно и то же значение независимо от размера окна.   -  person theta    schedule 08.07.2013


Ответы (1)


По умолчанию HTA находится в режиме обратной совместимости, где document.body.offsetWidth и document.body.offsetHeight возвращают ожидаемый результат.

С объявлением типа документа HTA переходит в стандартный режим (CSS1Compat), и в этом случае вместо этого следует использовать это: document.documentElement.offsetWidth и document.documentElement.offsetHeight

person theta    schedule 08.07.2013