当前位置: 代码迷 >> 综合 >> insertBefore
  详细解决方案

insertBefore

热度:65   发布时间:2024-01-16 15:34:01.0
insertBefore

经常看到这样的写法:

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]