小技巧解决“FF不能读取outerHTML”的问题
作者:yemoo 来源:yemoo博客 发布时间:2009-02-10 10:44:00
标签:outerHTML,ff,firefox,问题,技巧,DOM属性
对于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也是不赞同这种做法的。


猜你喜欢
- 这篇文章是入门级别的应用Python + Selenium进行自动化测试,包括环境搭建及简单的实例。基本思想是用Firefox Seleni
- 本文实例讲述了ASP.NET数据库操作类。分享给大家供大家参考,具体如下:using System;using System.Data;us
- 普通关闭我的mysql是自己下载的tar包,自己设定安装目录来安装的。停止mysql服务,说来简单,但不知道的话,还真是挠头。在这和mysq
- 一、Xpath概述1、Xpath简介Xpath(XML Path Language) 是一门在 XML 文档中查找信息的语言,可以
- Vue 单页面应用 把公共组件放在 app.vue 但是我希望某个页面没有这些公共组件怎么办(比如登陆页面)每个页面都有 导航栏 但是我希望
- 在对excel的操作中,调整列的顺序以及添加一些列也是经常用到的,下面我们用pandas实现这一功能。1、调整列的顺序>>>
- 目录1.jupyter简介2.jupyter基础操作2.1windows更新pip库2.2jupyter安装2.3初次启动jupyter2.
- 前言Go 开发中经常设计到类型转换,本文就重点记录下 整形、浮点型和字符串类型互相转换的方法。整形转字符串fmt.Sprintf将整数转为字
- 本文实例讲述了Python使用numpy产生正态分布随机数的向量或矩阵操作。分享给大家供大家参考,具体如下:简单来说,正态分布(Normal
- 很多时候关心的是优化SELECT 查询,因为它们是最常用的查询,而且确定怎样优化它们并不总是直截了当。相对来说,将数据装入数据库是直截了当的
- 一、MySQL修改密码方法总结首先要说明一点的是:一般情况下,修改MySQL密码是需要有mysql里的root权限的,这样一般用户是无法更改
- Anaconda3-5.1.0-MacOSX-x86_64.pkg 下载安装后,附带安装了pytorch包。需要将环境调整到新的python
- CNN可以同时进行多通道的输入,例如一张彩色图片可以分解成RGB三个通道输入给CNN,当使用自己的数据集时,可以通过numpy来实现数据的多
- 编这个程序是想过节过年,一些重要的纪念日,给亲戚好友发祝福之类的,但要凌晨0点才显得比较有诚意,可我又比较贪睡,常常忘了,所以就有了编个微信
- 引言----在实际的web测试工作中,需要配合键盘按键来操作,webdriver的 keys()类提供键盘上所有按键的操作,还可以模拟组合键
- 1.通过工具"DTS"的设计器进行导入或者导出DTS的设计器功能强大,支持多任务,也是可视化界面,容易操作,但知道的人一
- 本文实例讲述了Python使用正则表达式过滤或替换HTML标签的方法。分享给大家供大家参考,具体如下:python正则表达式关键内容:pyt
- 背景最近在一次线上作业过程中执行了一句DML语句,本以为万无一失,结果应用反馈说没有更新,数据还是没有变,最后经过排查才发现是我语句写错了,
- 项目需要,需要自动生成PDF测试报告。经过对比之后,选择使用了reportlab模块。 项目背景:开发一个测试平台,供测试维护测试用例,执行
- 高效处理数据类型方法:处理数据In [1]: from random import randintIn [2]: data=[randint