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 对象释放,防止出现内存泄露。