我想設置一個模式內的Facebook像按鈕,我想OG元是特定於模態內的每個圖像。在我的劇本我第一次添加所需的OG meta標籤:Facebook的按鈕動態元標籤(jQuery)
/* INSERT OPEN GRAPH META TAGS */
$('head').append('<meta property="og:title" content="'+x+'"/>
<meta property="og:url" content="'+window.location.href+'"/>
<meta property="og:description" content="'+z+'"/>
');
我檢查了這一點,他們加入就好了,在這一點上FB尚未初始化或已調用。只有某些模式具有社交圖標,因此打開模式時,圖像會加載,如果需要社交圖標,則會運行以下代碼並根據元素的某些數據屬性動態更新OG中繼標記:
$('meta[property="og:title"]').attr('content',currentImageParent.data('MetaTitle'));
$('meta[property="og:description"]').attr('content',currentImageParent.data('MetaDescription'));
這工作得很好,我可以看到更新發生在代碼中。因此,在圖像加載到模式後,meta標籤已根據圖像的.data信息更新,我認爲可以安全地調用Facebook SDK來設置like/send按鈕(並添加所需的DIV到如果它不存在的頁面):
$('body').prepend('<div id="fb-root" class="FacebookSDK"></div>
<script>
function(d,s,id){
var js,fjs=d.getElementsByTagName(s)[0];
if(d.getElementById(id))return;
js=d.createElement(s);
js.id=id;
js.src="//connect.facebook.net/en_US/all.js#xfbml=1";
fjs.parentNode.insertBefore(js,fjs);
}(document,\'script\',\'facebook-jssdk\'));
</script>
');
在調試程序,這並不工作,只是默認爲不OG meta標籤(標題/描述)。它還會引發錯誤,指出og:url等未定義(即使它們在調用之前已添加)。如果我在html頁面上放置虛擬OG元標記並運行調試程序,則不會顯示任何錯誤,並且會顯示OG元標記內容(不是動態更新的內容,只是虛擬內容文本)。
任何想法?謝謝!
忘了提及FB調試器中顯示的url/links在兩種情況下都是相同的 – Aaron