日期:2014-05-16  浏览次数:20380 次

想知道一个方法,有人知道吗?
有个innerHTML   方法,有没有类似于appendHTML的方法?我想让上次写的html代码执行的效果还在。
document.getElementById( "panel ").innerHTML   =   " ";

------解决方案--------------------
insertAdjacentHTML这个函数有firefox下的兼容实现

HTMLElement.prototype.insertAdjacentHTML = function(where,htmlStr)
{
var r = this.ownerDocument.createRange();
r.setStartBefore(this);
var parsedHTML = r.createContextualFragment(htmlStr);
this.insertAdjacentElement(where,parsedHTML);
parsedHTML = null;
r = null;
}

在firefox下执行这段代码就可以给firefox扩展出该函数功能的

至于为什么慢,自己分析分析了
是不是数据量太大了?
还是什么其他原因?
------解决方案--------------------
冰点兄弟,你给的代码自己有没有测试过呀? insertAdjacentElement 这个方法FF里的扩展你没有贴出来呀!

HTMLElement.prototype.insertAdjacentHTML=function(where, html)
{
var e=this.ownerDocument.createRange();
e.setStartBefore(this);
e=e.createContextualFragment(html);
switch (where)
{
case 'beforeBegin ': this.parentNode.insertBefore(e, this);break;
case 'afterBegin ': this.insertBefore(e, this.firstChild); break;
case 'beforeEnd ': this.appendChild(e); break;
case 'afterEnd ':
if(!this.nextSibling) this.parentNode.appendChild(e);
else this.parentNode.insertBefore(e, this.nextSibling); break;
}
};