// It's use to compatible with FireFox .The property about outerHTML can be used  in IE browser but not used in FireFox.
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());
    }
        );
}