4

我正在尝试创建一个简单的模态窗口,但 IE 不合作。当我在IE中调用这个函数时,内容出现在所有内容下的页面底部,并且没有出现覆盖图像。这是代码:

function applyOverlay(src)
{
  var my_overlay = document.createElement('div');

  my_overlay.setAttribute('id','myoverlay');
  var doc_height = document.body.scrollHeight;
  my_overlay.setAttribute('style','text-align:center; position:fixed; top:0px; left:0px; background-image:url("images/trbg.png"); width:100%; height:'+doc_height+'; z-index:999;');
  my_overlay.innerHTML="<iframe style='background:none;' frameborder=0 height='100%' width='80%' src='"+src+"'><iframe>";
  document.body.appendChild(my_overlay);
}
4

1 回答 1

3

这是常见的 IE 问题。这很烦人,但可以控制。

如果在 body 关闭之前在 body 标记内执行document.body.appendChild ,IE6 将根本不加载页面。7和8会等到页面加载完毕

那么,如何处理这个问题呢?

  • 等到身体被加载,使用body.onload
  • 将元素附加到另一个元素而不是 body 标记。

我推荐第二种选择。将元素附加到另一个目标元素将保留预期的行为,并且不会改变您将元素添加到站点的方式。

于 2011-06-22T22:28:18.223 回答