IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

IE中createElement需要注意的一个小问题

UED TEAM 2010-06-27 22:30:03 累计浏览 2,611 次
本机暂存

    最近有读者求助,说在iframe中,创建一个元素,然后添加到父页面中在ie6,ie7中行不通,而firefox和IE8可以。

    代码如下:

    var $alertPanel = $( document.createElement(“div”) );

    $alertPanel.css(“width”,”120px”).css(“height”,”50px”).text(“Hello CssRain!”);

    $(‘body’,parent.document).append($alertPanel);

    顺着他的意思,我也写了个Demo,发现确实是这样。

    翻了翻资料,也没看到类似的问题。

    然后使用原生的DOM方法写了一次,发现也不行,一样。

    var div = document.createElement(“div”);

    div.style.width = “120px”;

    div.style.height = “50px”;

    div.style.border = “solid 1px #000000″;

    div.innerHTML = “Hello CssRain!”;

    parent.document.body.appendChild(div);

    于是想到既然appendChild要parent.document,那么创建的时候是否也要parent.document.createElement呢?

    于是把代码改成:

    var div = parent.document.createElement(“div”);

    div.style.width = “120px”;

    div.style.height = “50px”;

    div.style.border = “solid 1px #000000″;

    div.innerHTML = “Hello CssRain!”;

    parent.document.body.appendChild(div);

    这样就成功了, IE6和IE7能用。

    看例子:

    http://www.cssrain.cn/demo/IEcreateElement/page1.html

    总结:

    如果你想在IE6,IE7中创建一个父页面元素,那么你必须使创建元素属于父页面。

    var dummy = parent.document.createElement(“div”);

    var t = parent.document.createElement(“table”);

    …

    在Firefox,IE8中,它允许在一个文档中创建要追加到另一个文档的元素。

    所以在Firefox,IE8中,可以使用parent.document也可以使用document。

    另外google浏览器非常怪异,很乱。如果要兼容google浏览器,那么建议换种思路吧,比如直接用 parent.函数名() 调父页面的方法。

    来源:http://www.cssrain.cn/article.asp?id=1460

同分类推荐文章

  1. translateZ() (2026-06-25 21:18:56)
  2. translateY() (2026-06-25 21:17:56)
  3. translateX() (2026-06-25 21:16:01)

查看更多 前端 文章 →

建议继续学习

  1. JQuery实现Excel表格呈现 (累计阅读 48,349)
  2. 深入理解Javascript之执行上下文(Execution Context) (累计阅读 18,404)
  3. 从输入 URL 到页面加载完成的过程中都发生了什么事情? (累计阅读 15,933)
  4. 图片动态局部毛玻璃模糊效果的实现 (累计阅读 14,848)
  5. 天朝第二代身份证号码的验证机制 (累计阅读 14,762)
  6. HTML 5 的data-* 自定义属性 (累计阅读 14,349)
  7. 分享一个JQUERY颜色选择插件 (累计阅读 14,223)
  8. 什么是全栈工程师? (累计阅读 14,038)
  9. 快速排序(Quicksort)的Javascript实现 (累计阅读 11,735)
  10. 7 天打造前端性能监控系统 (累计阅读 11,187)