4

我正在尝试在使用 dom 的页面<base>的开始标记之后立即插入 HTML标记。<head>我试过使用appendChildwhich 只是在 which 之前插入它</head>不好。

我使用的代码:

$head = $dom->getElementsByTagName('head')->item(0);
$base = $dom->createElement('base');
$base->setAttribute('href', $url);
$head->parentNode->insertBefore($base, $head);

这会在 之前插入<base>标签<head>,这仍然不好!

有任何想法吗?啤酒的正确答案!

4

1 回答 1

12
$head = $dom->getElementsByTagName('head')->item(0);
$base = $dom->createElement('base');
$base->setAttribute('href',$url);

if ($head->hasChildNodes()) {
    $head->insertBefore($base,$head->firstChild);
} else {
    $head->appendChild($base);
}

如果<head>元素已经有子元素,它会在的第一个子<base>元素之前插入元素。<head>如果<head>没有孩子,它只是将其附加到<head>.

于 2010-07-05T14:19:22.890 回答