gpt4 book ai didi

javascript - 定义 DOCTYPE 时 XSLT 和 javascript 的奇怪行为

转载 作者:行者123 更新时间:2023-12-02 19:30:30 25 4
gpt4 key购买 nike

在我的 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 中没有文档类型,这导致 IE 中的怪异模式几乎破坏了所有内容。所以我添加了 HTML5 文档类型,现在上面的代码没有执行任何操作。我已经添加了警报来触发 overlayObj.style.left 的值,当文件中没有 doctype 时,我会得到确切的 div 大小,但是当有 doctype 时,我会得到值自动

有谁知道为什么会发生这种情况?以及如何让它给我值(value)?

获取我正在使用的数据时:

var computedStyle = window.getComputedStyle(overlayObj, null);
alert("left value: " + computedStyle.getPropertyValue("left"));

如果我在存在文档类型时尝试返回 overlayObj.style.top,我不会得到任何响应。同样,如果没有文档类型,就不会有问题,并且会返回值。

最佳答案

在怪异模式下,浏览器确实会尝试理解损坏的 CSS,但在标准模式下,您需要确保为 topleft 分配正确的 CSS 值> 由数字和单位组成,例如foo.style.left = 200 + 'px';。因此,请确保您提供了该单元并且作业应该有效。

关于javascript - 定义 DOCTYPE 时 XSLT 和 javascript 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11546703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com