惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
The Blog of Author Tim Ferriss
WordPress大学
WordPress大学
博客园 - Franky
The Cloudflare Blog
T
Tailwind CSS Blog
宝玉的分享
宝玉的分享
小众软件
小众软件
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Apple Machine Learning Research
Apple Machine Learning Research
月光博客
月光博客
B
Blog
Y
Y Combinator Blog
V
V2EX
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
博客园 - 司徒正美
IT之家
IT之家
G
Google Developers Blog
C
Check Point Blog
Engineering at Meta
Engineering at Meta
Microsoft Security Blog
Microsoft Security Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
GbyAI
GbyAI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

博客园 - Anson2020

SQL Server 清除数据库日志脚本 StringSplitOptions Enumeration [转] - Anson2020 Hibernate映射类型对照表 [转] 解决 .setAttribute 添加JS或者CSS 在IE下不起作用. - Anson2020 Oracle 生成 GUID 类型 [转] Internet Explorer 8 Beta 1 已发布并提供下载! Eclipse编写代码可以设置源文件的编码方式UTF-8 [转] .NET 实战SSL安全加密机制 [转] IE Firefox css 差别 [转] 关于Service Unavailable的解决方法 [转] 解决JavaME中的内存泄漏 [转] 转载(正则表达式) [转] ORACLE Text 文本检索 Ajax Tree 仿Google和Windows Live的JS+DIV Drag [转] Input的高级用法11例 Asp.Net避免按钮重复点击(转) [转] ASP.NET 缓冲: 技术及最佳实践 [转] 支付宝Payto接口的c#.net实现
让 Firefox 也支持 outerHTML
Anson2020 · 2008-07-01 · via 博客园 - Anson2020

 今天在项目中遇到一个郁闷的问题, HTML中定义某些标签元素,然后取到ID好并且输出HTML元素,INNERHTML,INNERTEXT,OUTERHTML在IE/OPERA下面运行正常,但是在FF下唯独只有outerHTML无效,在网上一搜索,原来outerHTML不是W3C的标准属性,所以不对其支持.
  正好在网上找到一篇解决方案,在这里先谢谢作者帮了小弟一个大忙
  其实只要在JS中加上一些代码就能使FF同样也支持outerHTML属性.代码如下:

 if(typeof(HTMLElement)!="undefined" && !window.opera)
{
    HTMLElement.prototype.__defineGetter__("outerHTML",function()
    {
        var a=this.attributes, str="<"+this.tagName, i=0;for(;i<a.length;i++)
        if(a[i].specified)
            str+=" "+a[i].name+'="'+a[i].value+'"';
        if(!this.canHaveChildren)
            return str+" />";
        return str+">"+this.innerHTML+"</"+this.tagName+">";
    });
    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__("canHaveChildren",function()
    {
        return !/^(area|base|basefont|col|frame|hr|img|br|input|isindex|link|meta|param)$/.test(this.tagName.toLowerCase());
    });
}

解决问题.