2013-03-26 75 views
0

林像盒標籤試圖添加fb:like-box標籤通過jQuery的一些屬性到我的主頁,但它會導致沒有任何屬性的標籤。添加FB:用jQuery鴕鳥政策工作

繼承人的代碼,我裝了Facebook的Javascript SDK之後:

$('<fb:like-box>', { 
    'href' : 'http://www.facebook.com/platform', 
    'width' : '292', 
    'height' : '230', 
    'show_faces' : 'true', 
    'stream' : 'false', 
    'border_color' : '#FFF', 
    'header' : 'false' 
}).appendTo('#aDiv'); 

,並導致:

<div id="aDiv"><fb:like-box></fb:like-box></div>

好像jQuery的不喜歡Facebook的標籤,使任何人都不會知道一些解決方法?

回答

1

好吧,我會假設你已經有了JavaScript SDK,因爲它需要分析任何XFBML標籤初始化您的網頁上。

的初始調用FB.init()初始化頁面上的任何現有XFBML標籤:

FB.init({ 
    appId  : 'YOUR_APP_ID', // App ID from the App Dashboard 
    status  : true, // check the login status upon init? 
    cookie  : true, // set sessions cookies to allow your server to access the session? 
    xfbml  : true // parse XFBML tags on this page? 
}); 

而對於初始化後添加任何其他元素(如你的情況),則需要執行FB.XFBML.parse() function。這將呈現或重新呈現XFBML標記並顯示您喜歡的框。

至於屬性,你有兩個選擇

  • 你可以追加新樣箱在一個字符串,
  • 或者您可以使用prop()/attr() jQuery函數來設置這些非標準屬性。
var likeBox = $('<fb:like-box />'); 
likeBox.prop('show_faces','true'); 
likeBox.attr('href','http://www.facebook.com/platform'); 
$("#foo").append(likeBox); 
+0

excellant answer ...解決標記和無法修復的錯誤 – 2013-03-26 11:23:52

+0

謝謝。這隻適用於attr方法。 – Bohrnsen 2013-03-26 23:22:32

0

試試這個:

 
var html = $('#aDiv').html(); 
$('#aDiv').html(html + '<fb:like-box href='http...' width="292" ect...>'); 
+0

是的,這是正確的想法。但是爲什麼在jQuery提供'append()'函數時使用'html(html + ...)'? – Lix 2013-03-26 11:33:17

+0

如果append適用於您的案例,則可以使用它。在我的項目中,我幾乎從不需要使用append,因爲這是一種罕見的情況,它通常是附加和預置事物的混合,或者完全重新渲染DIV的內容,所以它更像是我習慣使用'html() ' - 雖然同時工作;) – olsn 2013-03-26 11:47:15

0

爲什麼不ü只是追加了整個事情

$("#aDiv").append('< fb:like-box 
    href="http://www.facebook.com/platform" 
    width="292" 
    height="230" 
    show_faces="true" 
    stream="false" 
    border_color="#FFF" 
    header="false" 
    />');