私の XLST では、「バニラ」javascript を使用して、レポート内の一部の div を操作しています。そのうちの 1 つは画面中央の他のすべての上に表示され、ページが読み込まれるときに次のように呼び出していました。
var overlayObj = document.getElementById('theoverlay');
overlayObj.style.left = Math.max(0, ((window.innerWidth - overlayObj.offsetWidth) / 2) + window.scrollX);
var padding = 50;
overlayObj.style.top = window.scrollY + padding;
overlayObj.style.bottom = -window.scrollY + padding;
これは、ページがサイズ変更されてスクロールされたときにも呼び出され、正常に動作しますが、XSLT に doctype がなく、これが IE で quirks モードを引き起こし、ほとんどすべてを壊していることに気付きました。そこで、HTML5 doctype を追加しましたが、上記のコードは何もしません。の値を起動するアラートを設定しoverlayObj.style.left
ました。ファイルに doctype がない場合は正確な div サイズが返されますが、doctype がある場合は値が返されますauto
。
なぜこれが起こっているのか誰にも分かりますか?そして、それをどのように私に値を与えるのですか?
私が使用していたデータを取得するとき:
var computedStyle = window.getComputedStyle(overlayObj, null);
alert("left value: " + computedStyle.getPropertyValue("left"));
overlayObj.style.top
doctype があるときに戻ろうとすると、応答がありません。繰り返しになりますが、doctype がなくても問題はなく、値が返されます。