看来我有必要给自己量身定做一个网址收集服务了。
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 对象释放,防止出现内存泄露。
我只是测试一下。。。
<script type="text/javascript">
/* 处理一次性事件 Single Version */
function RunOnce(element, type, handle, captrue){
if(element.attachEvent){
element.attachEvent("on" + type, function(e){
handle.apply(element, arguments);
element.detachEvent("on" + type, arguments.callee);
});
}
else if(element.addEventListener){
element.addEventListener(type, function(e){
handle.apply(element, arguments);
element.removeEventListener(type, arguments.callee, captrue);
}, captrue);
}
else{
element["on" + type] = function(e){
handle.apply(element, arguments);
element["on" + type] = null;
};
}
}
</script>