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());
});
}
使用方法:
<div id="test">
<input type="text" name="text" />
<p>this is a sentence</p>
</div>
<script>
var out = document.getElementById("test").outerHTML;
</script>
分享到:
相关推荐
另一种更加简洁且不涉及原型修改的方法是创建一个空的`div`元素,将目标元素克隆并插入到这个空`div`中,然后获取`div`的`innerHTML`,以此来模拟`outerHTML`: ```javascript function outerHtml(elem) { if ...
- **E4X**:Extension for XML,一种用于解析和操作 XML 的 JavaScript 扩展。 - **XPath**:XML Path Language,用于在 XML 文档中进行路径表达。 - **HTTP**:Hypertext Transfer Protocol,超文本传输协议。 - **...
JavaScript日历控制是一种常见的网页交互功能,用于在网页上提供日期选择器,用户可以通过它方便地选择日期,常用于表单填写、事件预订等场景...不过,这个基础框架提供了一个良好的起点,可以根据需求进行扩展和优化。
在JavaScript的世界里,jQuery是一个非常流行且功能丰富的库,它简化了DOM操作、事件处理、动画效果等。然而,随着JavaScript原生API的发展,越来越多的开发者倾向于使用原生JS来替代jQuery,以提高性能和减少依赖。...
Greasemonkey是一个专为Mozilla Firefox设计的浏览器扩展插件,它允许用户通过自定义JavaScript脚本来改变网页的行为与功能。通过这种方式,用户可以定制浏览体验,例如调整页面布局、添加额外功能、甚至修复网页中...
解决方案是使用prototype对象来扩展Array对象的方法,从而实现去重复元素的功能。 第七题:说出3条以上FF和IE的脚本兼容问题 这道题考察了JS中的浏览器兼容性问题,要求列举FF和IE之间的脚本兼容问题。解决方案是...