2011-07-16 27 views
0

我開始嘗試在<head>標記中添加元標記,但現在發現我無法向任何html標記添加任何內容。不是<body>,<p>,<h1>,只是它可以很好地處理div id和classes。jquery append和javascript appendChild不適用於html標記期

這裏的HTML

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 

<head> 
<script type="text/javascript" src="jquery-1.6.1.min.js"></script> 
<script type="text/javascript" src="append.js"></script> 
<title>appendTest</title> 
</head> 
<body> 

<div id="test"> 
<p> 
Hello World 
</p> 
</div> 

</body> 
</html> 

而這裏的append.js的例子,我已經試過

function loadmeta(){ 
var meta = "<meta name='og:title' content='some random content' />"; 
document.getElementsByTagName('head').item(0).appendChild(meta); 
} 

window.onload = function(){ 
loadmeta(); 
} 




/*jquery style*/ 

$(document).ready(function(){ 
$('html').append('meta name="testing" content="some content"/>'); 
}); 

$(document).ready(function(){ 
$('meta name="testing" content="some content"/>').appendTo('html'); 
}); 

現在,我嘗試了jQuery函數都追加和appendTo與股利與p#測試我可以在兩個函數中附加它。不過,我嘗試了頭部,身體,P,它不適用於任何人。

我開始懷疑在我的服務器上是否有某種安全設置會阻止它,因爲我使用append追加了文本和css樣式,並且之前沒有任何問題附加到主體。

螢火蟲沒有提供任何錯誤,我試過它在FF和Chrome。

雖然我不想感覺自己像一個白癡,但如果有人看到我犯了一些愚蠢的錯誤,我會愛上它。

感謝您的代碼

回答

1

你沒有創建該元素正確

function loadmeta(){ 
    var meta = document.createElement("meta"); 
    meta.name='og:title'; // or meta.setAttribute("name","og:title"); 
    meta.content='some random content'; 
    document.getElementsByTagName('head')[0].appendChild(meta); 
} 

但是我甚至不知道你的meta標籤將在頁面加載後解釋

+0

謝謝您,您和paulPro之間我現在看到兩種方法可以實現這一點與javascript,他們都對我有意義。只要在源代碼中看到這兩種方法,情況也是如此。它只顯示當我看着螢火蟲。這讓我想知道,即使強制應用程序在meta標籤插入工作後重新分析頁面。我想知道如果應用程序在查看源代碼時看不到它,那麼應用程序會在重新分析中看到新標籤。無論哪種方式,你們回答了我的問題。謝謝 – Ian

2

都不是正確的:

一切爲你的JavaScript唯一版本的appendChild首先需要一個節點,而不是HTML的字符串。

你可以這樣做:

var meta = "<meta name='og:title' content='some random content' />"; 
var head = document.getElementsByTagName('head')[0]; 
head.innerHTML = meta+head.innerHTML; 

您jQuery方法都缺少開放的HTML標籤。

+0

爲什麼不使用的createElement - 你這樣做會有AFAIK什麼取決於瀏覽器,將innerHTML更改爲瀏覽器所看到的innerHTML – mplungjan

+0

感謝您的回覆。我認爲你建議的javascript方法是有效的。我假設在加載查看源代碼的頁面後,我會看到新的元標記,但我只能在螢火蟲中看到它。至於jquery風格的函數,哎呀我打算把'頭',而不是'html',但仍然,你是什麼意思'開放標籤'?到處都是我見過的例子,它只是$('head')。append('text');給頭部添加一些文字,我想這會把它放在頭標籤之間。 html標籤的相同概念。除此之外還有更多嗎? – Ian

+0

我的意思是meta前面的小於號。您正在追加'meta name ...',您想在其中追加' Paulpro

相關問題