Javascript appendChild不';在IE中无法正常工作

Javascript appendChild不';在IE中无法正常工作,javascript,internet-explorer,modal-dialog,appendchild,Javascript,Internet Explorer,Modal Dialog,Appendchild,我试图创建一个简单的模式窗口,但IE不配合。当我在IE中调用此函数时,内容显示在页面底部的“所有内容”下,覆盖图像不会出现。代码如下: function applyOverlay(src) { var my_overlay = document.createElement('div'); my_overlay.setAttribute('id','myoverlay'); var doc_height = document.body.scrollHeight; my_overl

我试图创建一个简单的模式窗口,但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);
}
函数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;背景图像:url(“images/trbg.png”);宽度:100%;高度:'+doc_height+';z-index:999;');
my_overlay.innerHTML=“”;
document.body.appendChild(my_覆盖);
}

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

如果在主体关闭之前在主体标记内执行document.body.appendChild,IE6将不会加载页面。7和8将等待页面加载

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

  • 使用body.onload等待主体加载
  • 将元素附加到另一个元素而不是body标记

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

在firefox上有效吗?您如何知道是appendChild调用失败了?可能是因为您忘记正确关闭iframe标记。在firefox中有效。我认为这是一个z指数和/或定位问题。Iframe close标记无法解决此问题。该函数通过href调用,因此正文在追加之前已完全加载。您是否尝试过先追加到其他元素,然后再追加到正文,例如在页面完全加载时已存在的div