Firefox下不支持Set HTMLElement outerHTML的解决方案

在javascript中,火狐不支持obj.outerHTML=strings的操作,以下代码能够否解决问题,注意HTMLElement是一个HTML对象,需要用一个真实存在的对象代替,如document.getelement('Div1')来替换下面代码的HTMLElement字符串。

HTMLElement.prototype.__defineGetter__("outerHTML", function() {
    var span = document.createElement("span"); span.appendChild(this.cloneNode(true));
    return span.innerHTML;
});

HTMLElement.prototype.__defineSetter__("outerHTML", function(html) {
    var range = document.createRange();
    this.innerHTML = html;
    range.selectNodeContents(this);
    var frag = range.extractContents();
    this.parentNode.insertBefore(frag, this);
    this.parentNode.removeChild(this);
});

或者,你可以自己将上面的语句改成普通函数来使用,例如:

function FF_outerHTML(obj,html) {
    var Objrange = document.createRange();
    obj.innerHTML = html;
    Objrange.selectNodeContents(obj);
    var frag = Objrange.extractContents();
    obj.parentNode.insertBefore(frag, obj);
    obj.parentNode.removeChild(obj);
 }

调用方法:FF_outerHTML( document.getElementById('Div1') , 'replaced strings' );

引用通告地址: 点击获取引用地址
标签: 脚本
评论: 0 | 引用: 0 | 阅读: 1491 | 打印 | 打包 | 转发
发表评论
昵 称: 密 码:
网 址: 邮 箱:
验证码: 验证码图片 选 项:
头 像:
内 容:
  • 粗体
  • 斜体
  • 下划线
  • 插入图像
  • 超链接
  • 电子邮件
  • 插入引用