4

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>れますが、それでも問題があります。

何か案は?正解はビール!

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 に答える