Переоценить стороннюю обработку JavaScript? - PullRequest
1 голос
/ 16 февраля 2011

У меня есть несколько виджетов на моем сайте, которые зависят от запуска стороннего JavaScript для их создания.Например, у меня есть поле для комментариев в Facebook и кнопка «твит» в Twitter.Обе эти вещи требуют от меня запуска JavaScript для создания виджета.Например, для поля комментариев Facebook их JavaScript преобразует

<fb:comments numposts="10" width="425" publish_feed="true"></fb:comments>

в полнофункциональный виджет iframe Facebook.Это работает нормально, если я хочу создать эти элементы статически, но теперь я заинтересован в динамическом создании такого элемента позже.Есть ли какой-нибудь простой способ, например, переоценить предоставленный Facebook файл http://connect.facebook.net/en_US/all.js, чтобы заставить его создать один из этих виджетов на лету?

1 Ответ

1 голос
/ 16 февраля 2011

Возможно, это не задокументировано, но, глядя на этот источник, оно имеет:

FB.Array.forEach(FB.XFBML._tagInfos, function (f) {
    if (!f.xmlns) f.xmlns = 'fb';
    var g = FB.XFBML._getDomElements(c, f.xmlns, f.localName);
    for (var e = 0; e < g.length; e++) {
        b++;
        FB.XFBML._processElement(g[e], f, d);
    }
});

d - это функция, которая в конечном итоге запускает какое-то событие «рендеринга».

В массиве _tagInfos есть определения для таких вещей, как:

localName: 'comments',
className: 'FB.XFBML.Comments'

Так что, может быть, вы можете позвонить:

FB.XFBML._processElement(someElement, { 
    localName: 'comments', 
    className: 'FB.XFBML.Comments'
}, function() {
    FB.Event.fire('xfbml.render');
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...