2011-10-20 19 views
2

我正在創建一個Web應用程序,用戶可以在頁面中插入Facebook Like按鈕。他點擊「插入Facebook的像」和小部件的代碼被插入,這樣看:以編程方式更改data-href屬性後重新加載Facebook Like小部件

<div id="fb-root"></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>' + 
     '<div class="fb-like" data-href="' + field.url + '" data-send="true" data-width="369" data-show-faces="true"></div> 

然後用戶點擊「編輯控件」按鈕,看到一個文本輸入與URL。他填寫任何他想要的網址並點擊「保存」。在此data-href獲取URL值後。 以上所有內容都可以正常工作,但在更新網址時不會重新加載小部件。我想我應該調用一些方法來重新加載小部件。我該怎麼做?

回答

2

就我所知,data-href屬性在執行上面的腳本時被讀取一次。並且div本身成爲一個容器,並且在腳本執行後實際上不會在Like過程中扮演任何角色。

您可以嘗試使用XFBML Like-buttons代替。

<fb:like href="http://example.com" send="true" width="450" show_faces="true"></fb:like> 

當用戶變化的網址,你只是破壞現有的類似按鈕,插入更新XFBML,然後用Facebook's JavaScript SDK,叫FB.XFBML.parse重新創建它。

相關問題