解决FF下不能使用outerHTML的2种方法
2016-05-06 07:44
633 查看
让Firefox支持outerHTML属性可以通过扩展HTMLElement的原型来实现:
该方法出自W3Help(http://www.w3help.org/zh-cn/causes/SD9017),有点繁琐,而且还要侵入原型。还有一种更简单代替的办法,先创建一个空节点,将要获取outerHTML属性的DOM对象添加到这个空节点中,然后访问这个空节点的innerHTML就行了:
比起上面的办法,不用去动原型,代码量也少了很多。
if (typeof(HTMLElement) != "undefined") { HTMLElement.prototype.__defineSetter__("outerHTML", function(s) { var r = this.ownerDocument.createRange(); r.setStartBefore(this); var df = r.createContextualFragment(s); this.parentNode.replaceChild(df, this); return s; }); HTMLElement.prototype.__defineGetter__("outerHTML", function(){ var a = this.attributes, str = "<" this.tagName, i = 0; for (; i < a.length; i ) if (a[i].specified) str = " " Hormis dans les machines a sous preferees universelles, les casinos offrent des jeux par exemple Grandes six roues, Pai Go Poker, Blackjack, Baccarat, la <a href="http://topcasinosenligne.com/la-roulette">Roulette </a>et le Craps, entre autres. a[i].name "="" a[i].value """; if (!this.canHaveChildren) return str " />"; return str ">" this.innerHTML "<!--" this.tagName "-->"; }); HTMLElement.prototype.__defineGetter__("canHaveChildren", function(){ return !/^(area|base|basefont| col|frame|hr|img|br| input|isindex|link|meta |param)$/.test(this.tagName.toLowerCase()); }); }
该方法出自W3Help(http://www.w3help.org/zh-cn/causes/SD9017),有点繁琐,而且还要侵入原型。还有一种更简单代替的办法,先创建一个空节点,将要获取outerHTML属性的DOM对象添加到这个空节点中,然后访问这个空节点的innerHTML就行了:
function outerHtml(elem){ if(typeof elem === "string") elem = document.getElementById(elem); // 创建一个空div节点 var div = document.createElement("div"); // 将复制的elemCopy插入到空div节点中 div.appendChild(elem.cloneNode(true)); // 返回div的HTML内容 return div.innerHTML; };
比起上面的办法,不用去动原型,代码量也少了很多。
相关文章推荐
- Html基础知识点
- text() or html() 获取 td 内容
- HTML常用标签整理
- HTML 文本框 TextBox 内容改变事件
- HTML基础规范
- html 表单笔记
- 技术博客HTML
- html
- htmlentities 函数结构与htmlspecialchars 函数类似
- HTML link标签新属性
- poi转excel,word文档为html
- HTML 命名规范
- html video api控件总结
- HTML表格布局实例讲解
- HTML换行符和水平线
- 静态html请求session丢失
- XML与HTML的设计区别
- HTML网页制作:[12]使用框架结构之frameset
- HTML列表
- HTML链接