0

次の 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>

私のPCでは、111x66と報告されており、これはウィンドウフレームのないウィンドウの実際のサイズです。

<!DOCTYPE html>この HTAに追加すると、 107x19 となり、幅は実際には正しいのですが、高さは正しくありません。
使用したい場合でも、次のよう<meta http-equiv="X-UA-Compatible" content="IE=EDGE">になります: 107x0

私の HTA は doctype に依存しており、削除できません。OTOH 実際のウィンドウサイズを検出してそれに基づいて行動できるようにしたいです。

誰かがなぜDocument.Body.OffsetHeightこのように振る舞うかを説明できますか、または正しいウィンドウサイズ(本体要素のサイズ)を検出するための他の解決策を提供できますか?

4

1 に答える 1

0

デフォルトでは、HTA は下位互換性モードでありdocument.body.offsetWidthdocument.body.offsetHeight期待される結果を返します。

doctype 宣言を使用すると、HTA は標準モード (CSS1Compat) になり、代わりにこれを使用する必要がありますdocument.documentElement.offsetWidthdocument.documentElement.offsetHeight

于 2013-07-08T19:06:36.090 に答える