insertBefore
经常看到这样的写法:
其实可以改为:
[list]
[*]insertBefore的第二参数为空时, 相当于appendChild
[*]head.firstChild为空时, insertBefore等同于appendChild
[*]jquery中的getScript时, 就是只有一句 insertBefore
[/list]
另外:
[list]
[*]IE6,IE7,IE8 下的head默认不是空的, 有一个文本空节点, head.childNodes.length === 1
[*]IE9下面时, 如有<head></head>, 为1个文本节点, 内容为一个回车符
[*]IE9下面时, 如没有head标签, 与chrome一致, 节点数为0
[*]chrome时, <head></head>与没有head标签,均一致, 节点数为0
[/list]
经常看到这样的写法:
if (head.firstChild) {
head.insertBefore(node, head.firstChild);
} else {
head.appendChild(node);
}
其实可以改为:
head.insertBefore(node, head.firstChild);
[list]
[*]insertBefore的第二参数为空时, 相当于appendChild
[*]head.firstChild为空时, insertBefore等同于appendChild
[*]jquery中的getScript时, 就是只有一句 insertBefore
[/list]
另外:
[list]
[*]IE6,IE7,IE8 下的head默认不是空的, 有一个文本空节点, head.childNodes.length === 1
[*]IE9下面时, 如有<head></head>, 为1个文本节点, 内容为一个回车符
[*]IE9下面时, 如没有head标签, 与chrome一致, 节点数为0
[*]chrome时, <head></head>与没有head标签,均一致, 节点数为0
[/list]