2011-03-02 26 views
1

我使用ajax來呈現一個帶有Facebook Like Button插件的內容頁面。試圖更新使用客戶端jQuery和ajax的Facebook開放圖元標記

問題是,當用戶clics喜歡,Facebook將提取元信息,但我不知道如何分配元與Ajax。

我試着用追加到頭部INT FB.init但它似乎不工作,並且更新不會反映在用戶喜歡在Facebook上

$('head').append("<meta property="og:title" content="The Rock"/>');

+0

我不認爲這是可能的,但爲什麼你需要這樣做?您可以在構建標記時從服務器端設置和更改元標記... – ifaour 2011-03-02 21:42:33

回答

0

頁小心使用「.append()」 。 根據JQuery Docs,此方法具有移動效果(從源讀取,複製到目標並移除源)。

的理論方法是這樣的:

headObj = $("head"); 
keywordObj = $(headObj).find("meta[name='keywords']"); 
newKeywords = $(keywordObj).attr("content"); 
newKeywords += myKeywords; 
$(keywordObj).attr("content", newKeywords); 

下載並安裝火狐瀏覽器插件的螢火,使您可以檢查在運行時的變化。

1

其實你可以使用這些腳本:

/// Append Meta tags 
function setMT(metaName, name, value) { 
     var t = 'meta['+metaName+'='+name+']'; 
     var mt = $(t); 
     if (mt.length === 0) { 
      t = '<meta '+metaName+'="'+name+'" />'; 
      mt = $(t).appendTo('head'); 
     } 
     mt.attr('content', value); 
    } 

,並從身上調用這個函數:在​​

2

問題是

setMT('property', 'og:title', 'Title for Facebook'); 

我對新聞網站相似該Facebook喜歡將提取元信息,但我不知道如何分配元與AJAX。

我試過使用append頭int FB.init但它似乎不工作。

當然這並不工作,因爲Facebook的刮板從服務器請求您的網址 - 而並不關心什麼DOM目前看起來像任何用戶的瀏覽器

不能添加開放圖元數據客戶端。

+0

我的理解FB將尊重Open Graph元標記。 – santa 2014-09-15 02:35:40

+0

@santa:我沒有說他們沒有。 – CBroe 2014-09-15 09:29:04