gpt4 book ai didi

javascript - 如何在 IE 6、7、8 的页面底部保留一个栏,或者如何强制 IE 重绘界面?

转载 作者:行者123 更新时间:2023-11-30 06:48:03 24 4
gpt4 key购买 nike

我需要在 Web 浏览器中将一个栏粘贴到客户端 View 的底部。传统上我会使用 position:fixed;除了我需要支持我的 IE 6 客户端。我有一个非常广泛的 hack 将栏粘到页面底部和内容上,但是当用户向下或向右滚动时,栏保持固定在页面上。

为了纠正这个问题,我使用了一个使用 setInterval 触发的 javascript 事件,当在 IE (8) 的调试工具中运行该函数时,该事件触发并更改位置顶部和位置左侧属性,但页面不会重绘元素。代码有效,但元素没有移动,见下文。

The example shown.

正如您所知,修复程序必须在 IE 怪癖模式下工作...如果其他 IE 版本试图使用标准,它就无法工作。相信我,我试过了。

附言这真的很让人恼火,因为我也在仔细检查 IE9 支持......得到这个元素不会随着 IE 6、7 和 8 中的滚动条移动但在 IE 9 中移动并且它仍然显示“IE Quirks Mode。 “并且 Microsoft 表示此版本不会产生任何影响,...

HTML 结构

<body>
<div id="j_zoom_area" style="zoom:100%;">
The Application area the the zoom is changed (by the bar) for accessibility...
</div>
<div id="j_protectorite">
<div class="j_bar">
<div class="j_plate">Zoom Controls, Help, Search, other misc controls</div>
<div class="j_plate">Copyright info, privacy policy, etc...</div>
</div>
</div>
<script type="text/javascript" language="javascript">
j_doBar();
</script>
</body>

栏的 CSS 是 https://kscserver.com/ERP-API/Style/includes.css .用于条形校正的特定 javascript。

//This controls the scrolling of the bar
function j_FixBarSlowly(){
var nTop = 0;
var nLeft = 0;

nTop = (document.body.scrollTop + document.body.clientHeight) - 67;
nLeft = document.body.scrollLeft;

//document.title = document.body.scrollTop + '+' + document.body.clientHeight + '-67' + '=' + nTop + 'px';
document.getElementById("j_protectorite").style.Top = nTop + 'px';
document.getElementById("j_protectorite").style.Left = nLeft + 'px';
document.getElementById("j_protectorite").style.Bottom = '';
document.getElementById("j_protectorite").style.Position = 'absolute';

//Ie6,7,8 hack to force redraw

}

function j_doBar() {
//j_FixBarSlowly();

//if (setInterval != undefined) {
// setTimeout("j_doBar();",5);
//} else {
setInterval("j_FixBarSlowly();",5);
//}
}

最佳答案

我建议使用 IE 修复 hack,例如 Dean Edwards' IE7.js .

此脚本在您的页面在 IE 中加载时运行,并修复了旧版 IE 中的一些常见问题。 The documentation列出它处理的事物,并包括 position:fixed;

希望对您有所帮助。

(当然,最好的解决方案 - 为了您的理智 - 只是放弃尝试使 IE6 看起来与较新的浏览器相同,而只是在 IE6 中使用非粘性页脚。只要它不影响可用性,我没有看到 IE6 用户的页面布局稍微不完美的问题。但我知道有些人没有这样做的奢侈;如果你的用户有要求,他们就是你必须做的听着,不是我!)

关于javascript - 如何在 IE 6、7、8 的页面底部保留一个栏,或者如何强制 IE 重绘界面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4378139/

24 4 0