在我的 XLST 中,我们使用“vanilla”javascript 来操作报告中的一些 div。其中一个高于屏幕中心的所有其他内容,当页面加载时我这样称呼它:
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 中的怪癖模式几乎破坏了一切。所以我添加了 HTML5 文档类型,现在上面的代码没有做任何事情。我已经发出警报以触发 的值,overlayObj.style.left
当文件中没有 doctype 时,我会得到确切的 div 大小,但是当有 doctype 时,我会得到 value auto
。
有谁知道为什么会发生这种情况?以及如何让它给我价值?
获取我正在使用的数据时:
var computedStyle = window.getComputedStyle(overlayObj, null);
alert("left value: " + computedStyle.getPropertyValue("left"));
overlayObj.style.top
如果我在有 doctype 时尝试返回,我没有得到任何响应。同样,没有 doctype 就没有问题,并且返回值。