« 试用 Windows Live Writer记录一个和设计相关的网址 »

P 标签innerHTML属性引发JS未知的运行时错误(IE ONLY)

p 标签的innerHTML属性不能直接对写入包含下述标签:

address,
blockQuote,
center,
dd,
dir,
div,
dl,
dt,
fieldSet,
frameSet,
hr,
isIndex,
li,
listing,
menu,
ol,
p,
plainText,
pre,
ul,
xmp

如果包含上述标签会产生未知的运行时错误。

解决方案是先对innerHTML的赋值做下正则判断,包含上述标签时则创建一个 fragment 对象,然后将innerHTML 赋值给 fragment 对象后,遍历 fragment 对象的全部子结点,依次追加到 p 标签,最后把fragment 对象释放,防止出现内存泄露。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。