小技巧解决“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
投稿

猜你喜欢

  • golang指数运算操作

    2024-01-30 22:35:53
  • 利用numpy和pandas处理csv文件中的时间方法

    2023-01-21 09:44:56
  • 用文本+ASP打造新闻发布系统

    2009-02-02 09:31:00
  • 在Python中实现字典反转案例

    2022-12-17 02:05:46
  • PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题

    2023-08-12 09:14:28
  • SQL2005 四个排名函数(row_number、rank、dense_rank和ntile)的比较

    2024-01-18 02:47:08
  • Python3 pickle对象串行化代码实例解析

    2021-12-06 14:32:07
  • 推荐5款跨平台的PHP编辑器

    2023-10-18 12:49:40
  • 详解vue3.0 的 Composition API 的一种使用方法

    2024-04-28 09:23:48
  • Python WSGI 规范简介

    2022-02-06 23:30:06
  • asp如何显示已在数据库编码了的相对应的记录?

    2010-06-09 18:44:00
  • python定义类self用法实例解析

    2022-01-08 14:11:01
  • python和pygame实现简单俄罗斯方块游戏

    2022-10-04 20:00:49
  • 瞬间的设计(四)【碳酸饮料会】

    2009-12-23 13:56:00
  • MySQL学习笔记小结

    2024-01-26 22:20:33
  • Python装饰器基础概念与用法详解

    2021-07-07 12:32:46
  • 使用MySQL数据库的23个注意事项

    2010-03-18 15:46:00
  • python画条形图实例

    2023-12-04 12:32:33
  • Python多线程实现支付模拟请求过程解析

    2023-04-09 17:59:35
  • 一文详解MySQL主从同步原理

    2024-01-24 03:00:59
  • asp之家 网络编程 m.aspxhome.com