小技巧解决“FF不能读取outerHTML”的问题

作者:yemoo 来源:yemoo博客 时间:2009-02-10 10:44:00 

对于outerHTML这个DOM属性,在IE/Opera/google Chorme等浏览器中都是可以使用的,但唯独Firefox是不支持的,尽管这个属性平时用的并不多,但有些应用中我们还必须用到,因此很有必要去实现FF下的outerHTML功能。

在网上看了一些文章,最典型的方法应该就是通过__defineSetter__、__defineGetter__来为DOM属性扩展这个属性,具体实现即:遍历读取元素的属性及子节点,然后自己拼装html串,具体可以看这篇文章:《firefox没有outerHTML 解决办法》,该文实现了outerHTML的读写,比较完整。

对于获取outerHTML的值,使用拼装HTML串的办法,觉得有点麻烦了,在网上看到一个解决办法,感觉很妙代码也很简洁,而且在各种浏览器中都是可以使用的。其原理为:创建一个div元素,然后将要读取的元素的克隆对象放到这个div中,读取这个div的childNode即可

示例代码:

document.createElement("DIV").appendChild(htmlNode.cloneNode(true)).parentNode.innerHTML)document.createElement("DIV").appendChild(htmlNode.cloneNode(true)).parentNode.innerHTML)

对于setter的实现,暂时还没有考虑到更好的办法,不过对于outerHTML,更多的时候我们还是获取,而很少写入,而且W3C也是不赞同这种做法的。

 

标签:outerHTML,ff,firefox,问题,技巧,DOM属性
0
投稿

猜你喜欢

  • ASP 多关键词查询实例代码

    2011-04-11 11:14:00
  • 客户端JavaScript代码封装

    2008-12-26 18:10:00
  • asp如何用FSO对象显示一个文本文件?

    2010-06-09 18:41:00
  • asp中最新新闻显示new图片的实现代码

    2012-11-30 20:31:42
  • 后台程序开发常用jQuery插件

    2010-04-06 12:11:00
  • SQL Server 2000安装图解教程

    2009-09-09 19:59:00
  • 书写高效的CSS - 漫谈CSS的渲染效率

    2008-07-13 14:20:00
  • 把你的数据库置于版本控制之下

    2009-04-25 10:01:00
  • 什么是SVG(可升级矢量图形)

    2008-05-06 12:37:00
  • 批量更新存储过程所有者

    2010-07-15 21:14:00
  • JavaScript学习心得之如何走出初学困境

    2008-12-24 13:30:00
  • 新Orcas语言特性:扩展方法

    2007-09-23 12:49:00
  • 交互设计实用指南系列(4)—“有效性”之“简洁清晰,自然易懂”

    2010-01-05 16:52:00
  • 数据仓库基本报表制作过程中的SQL写法

    2008-11-25 12:17:00
  • asp下去除超链接的函数

    2011-03-29 11:11:00
  • JavaScript奇怪的比较——隐式类型转换

    2009-02-15 13:06:00
  • css行高:line-height属性详解

    2008-06-24 11:42:00
  • 剖析SQL Server 事务日志的收缩和截断

    2009-01-15 13:04:00
  • 如何在js中使用FileSystemObject(fso)

    2007-09-23 09:10:00
  • SQL Server中使用DTS设计器进行数据转移

    2009-01-08 16:15:00
  • asp之家 网络编程 m.aspxhome.com