я хотел бы изменить URL для симпатии кнопки FB:Like динамично с помощью JavaScript.
прямо сейчас я только смог изменить href атрибут fb:like
тег (я вставил код ниже). но просто изменение href не делает, кажется, работает. возможно, я должен повторно инициировать кнопку FB:Like, но до сих пор я не могу выяснить как..
function update_share(container, url) {
// update fb:like href value
var container = container[0] || document.body;
var button = container.getElementsByTagName('fb:like');
button[0].setAttribute('href', url);
}
любая справка ценилась бы. спасибо..
Думаю, у вас есть несколько вариантов ...
Удалить элемент, построить и добавить строку XFBML, а затем проанализировать родительский объект с помощью вызова XFBML.parse.
Удалите элемент или его контейнер, создайте и добавьте фактический объект XFBML, используя
Построить контейнер iframe, который передается по аналогичному URL-адресу (с помощью GET) с родительской страницы. Вы можете сделать это, даже не используя настоящий бэкэнд, если можете получить строку запроса в JS. Затем просто создайте разметку, прежде чем запускать facebook SDK, и отобразится кнопка Like. Facebook в любом случае размещает все свои файлы в фреймах, поэтому этот метод не такой уж громоздкий, как кажется. Пробовал, работает хорошо.
другие решения:
вместо объекта fb:like напишите iframe FB в вашем html, например:
<iframe id="face" name="face" src="http://www.facebook.com/plugins/like.php?href=http://www.google.fr&layout=button_count&show_faces=false&width=400&action=like&font=arial&colorscheme=light" allowtransparency="true" style="border: medium none; overflow: hidden; width: 400px; height: 21px;" frameborder="0"scrolling="no"></iframe>
и теперь вы можете изменить с помощью javascript с помощью этой функции:
function setUrl(url)
{
sUrl = url;
url = "http://www.facebook.com/plugins/like.php?href="+sUrl+"&layout=button_count&show_faces=false&width=400&action=like&font=arial&colorscheme=light";
document.getElementById('face').setAttribute('src', url);
//alert("url : "+url);
}
когда вы меняете src, iframe FB обновляется.