Я строю стену людей, которые написали сообщения на нашем сайте. Для каждого сообщения я хочу добавить кнопку «Мне нравится» на Facebook. Но реализация Facebook состоит в том, чтобы включить тег script перед созданием тега fb: like.
<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script>
<fb:like href="http://example.com/MessageWall.aspx/Fan/222"
show_faces="false" width="250">
</fb:like>
Я попробовал этот подход, но поскольку я показываю 121 человека на странице за раз, производительность страницы, скажем так, ниже номинала. Я не могу поверить, что мне нужно каждый раз включать тег script.
Сейчас я пытаюсь реализовать асинхронный способ сделать это.
Я пробовал это:
(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js#xfbml=1';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(e, s);
}());
var firstHalfOfLikeButton = '<fb:like href="http://example.com/MessageWall.aspx/Fan/';
var secondHalfOfLikeButton = '" layout="button_count" show_faces="false" width="250"></fb:like>';
var userId, divId;
for (var x=0; x<listOfIdsOfActiveTiles.length; x++) {
userId = listOfIdsOfActiveTiles[x][0];
divId= listOfIdsOfActiveTiles[x][1];
$("div#" + divId+ " .hbo-message").append(firstHalfOfLikeButton + userId + secondHalfOfLikeButton);
}
Я также пытался асинхронно присоединить all.js к корню fb, как это ПРЕЖДЕ ЧЕМ перебирать и прикреплять тег fb: like к каждому местоположению.
(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js#xfbml=1';
document.getElementById('fb-root').appendChild(e);
}());
Я также попытался перебрать и создать тег fb: like, а затем прикрепить файл all.js.
Обновление: в каждом случае я вижу, что тег
У кого-нибудь есть идеи?
Спасибо,
Скотт
UPDATE
Возвращаясь к этой странице, спустя некоторое время, но я закончил тем, что динамически создал кнопку «Мне нравится» для изображения каждого человека при нажатии элемента. Итак, мой код onclick проверяет, нет ли его там, и если нет, строит его, используя строительные блоки, которые у меня есть выше.
Таким образом, мне не нужно создавать 121 аналогичные кнопки при загрузке страницы. Вместо этого я создаю их по требованию.
Вы можете увидеть готовый проект на honeybunchesofoats.com