重新评估第三方处理JavaScript?

时间:2011-02-16 17:35:11

标签: javascript facebook twitter

我的网站上有许多小部件依赖于运行第三方JavaScript来创建它们。例如,我有一个Facebook评论框和一个Twitter“推特”按钮。这两件事都需要我运行一些JavaScript来创建小部件。例如,对于Facebook评论框,他们的JavaScript转换

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

进入全功能的Facebook iframe小部件。如果我想静态地创建这些元素,这可以正常工作,但现在我有兴趣在以后动态构建这样的元素。有没有一些简单的方法,例如,重新评估Facebook提供的http://connect.facebook.net/en_US/all.js文件,以便在运行中构建其中一个小部件?

1 个答案:

答案 0 :(得分:1)

可能没有记录,但查看该来源,它有:

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');
});