我正在尝试使用dom在页面打开<base>
标记后立即插入HTML <head>
标记。我尝试使用appendChild
,只是在</head>
之前插入它,这是不行的。
代码使用:
$head = $dom->getElementsByTagName('head')->item(0);
$base = $dom->createElement('base');
$base->setAttribute('href', $url);
$head->parentNode->insertBefore($base, $head);
这会在<base>
之前插入<head>
标记,这仍然不行!
有什么想法吗?啤酒的正确答案!
答案 0 :(得分:9)
$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>
。