2011-03-09 23 views
4

我想追加一個Facebook的開放圖形標記(基於頁面上的動態生成的內容)到我的HTML的頭部。如何將html添加到<head>與jQuery

$(document).ready(function(){ 
var stat = $('#random-message').text(); 
stat = jQuery.trim(stat); 

//set facebook Open Graph description 
$('head').append('<meta property="og:description" content="'+stat+'"/>'); 

    }); 

這本身工作正常。 js fiddle

當我與一個動態加載的微博腳本(下面)

$(document).ready(function(){ 
var stat = $('#random-message').text(); 
stat = jQuery.trim(stat); 
//set tweet button data text 
$('a.twitter-share-button').attr('data-text',stat); 

//set facebook Open Graph description 
$('head').append('<meta property="og:description" content="'+stat+'"/>'); 

//insert twitter API Script - problematic 
$('#tweet-like').append('<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>'); 

}); 

它吸住一個不穩定相結合。 js fiddle在js小提琴中,它會在身體中插入一些特殊字符,並且腳本的其餘部分(包括插入meta標籤)都不起作用。奇怪,因爲Twitter腳本「widgets.js」在我的頁面上工作,但是meta標籤沒有出現。

+1

類似的問題[這裏](http://stackoverflow.com/questions/4032630/append-html-to-head-with-jquery) – 2011-03-09 15:52:14

+0

頭只是另一個標籤,追加應該沒有問題 – amosrivera 2011-03-09 15:54:20

+0

它適用於我。 – 2011-03-09 15:55:08

回答

7

Facebook不會在當前頁面中使用元標記,它會重新請求頁面並對其進行分析。由於解析不涉及在頁面中運行任何Javascript,它不會將元標記添加到讀取的數據。

要使元標記起作用,它必須從開始頁面出現在頁面中,但不能使用客戶端腳本添加。