`
lixinlixin2008
  • 浏览: 152394 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

FF的outerHTML

阅读更多
一种网上常见的方法是这样的:
   1. var pro = window.HTMLElement.prototype;  
   2. pro.__defineGetter__("outerHTML", function(){  
   3.     var str = "<" + this.tagName;  
   4.     var a = this.attributes;  
   5.     for(var i = 0, len = a.length; i < len; i++){  
   6.         if(a[i].specified){  
   7.             str += " " + a[i].name + '="' + a[i].value + '"';  
   8.         }  
   9.     }  
  10.     if(!this.canHaveChildren){  
  11.         return str + " />";  
  12.     }  
  13.     return str + ">" + this.innerHTML + "</" + this.tagName + ">";  
  14. });  
  15. pro.__defineSetter__("outerHTML", function(s){  
  16.     var r = this.ownerDocument.createRange();  
  17.     r.setStartBefore(this);  
  18.     var df = r.createContextualFragment(s);  
  19.     this.parentNode.replaceChild(df, this);  
  20.     return s;  
  21. });  
  22. pro.__defineGetter__("canHaveChildren", function(){  
  23.     return !/^(area|base|basefont|col|frame|hr|img|br|input|isindex|link|meta|param)$/.test(this.tagName.toLowerCase());  
  24. });  



不过感觉getter实现方法应该这样:clone当前div,放入一个tempdiv中,然后取tempdiv的innerHTML这样效率应该高很多

setter实现方法:也可以放入div中循环appendChild节点,不过效率没有createContextualFragment这种高


没深入研究,欢迎指导
分享到:
评论

相关推荐

    解决Firefox下outerHTML不支持问题

    压缩包中的`ff_outerHTML.html`文件很可能包含了一个示例,演示了如何在Firefox中使用上述方法解决`outerHTML`问题。通过打开这个文件,我们可以看到具体的代码实现和使用场景,从而加深理解和应用。 总的来说,...

    笔试题之Javascript

    - **innerText, textContent, outerHTML**:IE支持`innerText`和`outerHTML`,FF支持`textContent`。 - **id替代HTML元素**:IE允许使用id直接代替HTML元素,而FF不支持这种做法。 了解这些兼容性问题,对于编写...

    Web前端开发笔试题集锦已读.doc

    - `(7)` `innerText`和`textContent`,`outerHTML`,IE支持`innerText`和`outerHTML`,FF支持`textContent`。 - `(8)` 使用ID代替HTML元素,IE允许,FF不允许。 5. **JavaScript中避免函数重名问题**: - `(1)` ...

    Web前端开发笔试题集锦(已读).doc

    7. Firefox不支持`outerHTML`属性,但可以通过创建临时元素并复制innerHTML和outerHTML来实现类似功能。 了解这些知识点对于Web前端开发者至关重要,它们涵盖了基础语法、正则表达式、字符串操作、浏览器兼容性、...

    Firefox和IE兼容性问题及解决方法总结

    兼容firefox的 outerHTML,FF中没有outerHtml的方法 代码如下: if (window.HTMLElement) { HTMLElement.prototype.__defineSetter__(“outerHTML”,function(sHTML) { var r=this.ownerDocument.createRange();...

    web前端开发笔试集锦(javascript篇)参考.pdf

    7. **FF下的outerHTML**:Firefox不支持`outerHTML`属性,但可以通过创建新的元素,克隆原始元素,并设置新元素的innerHTML为原始元素的outerHTML来实现类似功能。 以上知识点涵盖了JavaScript的基础语法、字符串...

    js有关元素内容操作小结

    2.outerHTML 此方法可以用于对元素自身的快速替换,比如: 代码如下: ”hello”&gt;Hello, I am a demo&lt;/p&gt; $(‘hello’).outerHTML = ‘&lt;p&gt;Hello, I am a replacement’; 遗憾的是,firefox目前还不支持(我当前用fire...

    JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结

    1.兼容firefox的 outerHTML,FF中没有outerHtml的方法。 代码如下: if (window.HTMLElement) { HTMLElement.prototype.__defineSetter__(“outerHTML”,function(sHTML) { var r=this.ownerDocument.createRange(); ...

    查看网页的运行时源代码

    对于“可像FF一般查看当前鼠标处的html元素(的outerHTML)”,这通常指的是使用浏览器的元素选择功能。在Chrome或Firefox的开发者工具中,当鼠标悬停在页面上时,会显示一个框高亮当前选中的元素。点击这个元素,...

    百度前台js笔试题与答案

    - IE有innerText, outerText, outerHTML,FF没有,可以使用textContent和innerHTML。 - FF有HTMLElement, HTMLDivElement等接口,而IE没有。 - IE使用ActiveXObject创建XMLHttpRequest,FF使用原生的XMLHttpRequest...

    webbrowset操作纪要

    WebBrowser1.OleObject.document.body.bgcolor := '#FF0000'; ``` 2. **设置背景图片**:通过`document.body.background`属性设置背景图片。 ```delphi WebBrowser1.OleObject.document.body.background := '...

    HTML的Table数据导出excel和例子

    xlsheet.Cells(1, 1).Interior.Color = 0x00FF66; // 设置单元格边框样式 xlsheet.Cells(1, 1).Borders.LineStyle = 1; ``` 此外,单元格还支持其他属性,如单元格格式等,具体可参考官方文档。 #### 三、使用...

    Javascript数组操作高级心得整理

     innerText(IE)、textContent(FF)、innerHTML 26  outerText、outerHTML(少用) 26  value属性获取表单节点内容 26 (3) 访问节点的样式 27  使用节点对象的style属性对象改变样式 27  使用className设置...

    js清空form表单中的内容示例

    在IE、Opera、Safari、Chrome中,可以通过重新设置outerHTML实现清空。而在FF中,可以尝试将值设为空字符串,例如`file.value = ""`。 - `textarea`类型:将文本区域的值设置为空字符串,例如`formObj.elements[i]....

    IE地址栏中的妙用大全

    - **受限制环境下的解决方法**:输入代码 `file:///::%7B645FF040-5081-101B-9F08-00AA002F954E%7D`,即可直接访问回收站。 ##### 3. 快速设置“控制面板” - **传统方法**:直接在地址栏输入“控制面板”,回车。...

Global site tag (gtag.js) - Google Analytics