2010-07-05 45 views
3

我試圖在使用dom的頁面的開始<head>標記後立即插入HTML <base>標記。我嘗試過使用appendChild,它只是在</head>之前插入,這是不好的。使用在使用PHP的html標記開始處插入創建的元​​素DOM

代碼IM:

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

這就將<head><base>標籤,這仍然是沒有好!

任何想法?啤酒的正確答案!

+0

parentNode是必要的嗎?我假設頭的父節點是HTML。 – fabrik 2010-07-05 14:08:29

+0

什麼樣的啤酒? – 2010-07-05 14:13:40

回答

7
$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>元素已經有了孩子,將其插入前<head>的第一個孩子的<base>元素。如果<head>沒有孩子,只需將其附加到<head>

+1

啤酒爲你! – DrShamoon 2010-07-05 14:35:44

+7

*葡萄糖葡萄糖* – 2010-07-05 14:39:09