HTA Document.Body.OffsetHeight с doctype

Моля, вземете предвид този 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 връщат очаквания резултат.

С doctype декларация HTA ​​преминава в стандартен режим (CSS1Compat), в който случай това трябва да се използва вместо това: document.documentElement.offsetWidth и document.documentElement.offsetHeight

person theta    schedule 08.07.2013