appendChild 在 IE 中无法正常工作

发布于 2024-11-16 12:21:37 字数 633 浏览 1 评论 0原文

我正在尝试创建一个简单的模态窗口,但 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);
}

I am trying to create a simple Modal window, but IE isn't cooperating. When I call this function in IE, the content appears at the bottom of the page under all content and the overlay image does not appear. Here's the code:

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);
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

暮色兮凉城 2024-11-23 12:21:37

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

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

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

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

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

This is common IE issue. It is irritating, but managable.

If document.body.appendChild is executed within the body tag before the body is closed, IE6 will simply not load the page. 7 and 8 will wait until the page is loaded

So, how to approach this issue?

  • wait until the body is loaded, using body.onload.
  • append the element to another element instead of the body tag.

I recommend the second option. Appending elements to another target element will preserve the intended behavior and not change the way you add your elements to the site.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文