像脚本一样启动facebook几次而不解析现有的按钮

时间:2013-05-15 21:48:46

标签: javascript facebook facebook-like

我正在使用无限滚动,在运行时加载的元素内部我有一个像Facebook一样的按钮。我第一次调用脚本时一切正常,但似乎我不能多次加载它,因此当滚动时创建的元素由于加载脚本时不存在而没有工作的Facebook按钮。如果我在加载更多内容后执行此操作,则不会发生任何事情。

查看脚本(http://connect.facebook.net/en_GB/all.js),看起来脚本每页只运行一次,有什么方法吗?

我的代码:

var js, fjs = d.getElementsByTagName(s)[0];   
js = d.createElement(s); js.id = id;
js.async=true;  
js.src = "http://connect.facebook.net/en_GB/all.js#xfbml=1&appId=xxxxxxxxxxxxx";
fjs.parentNode.insertBefore(js, fjs);

我知道一个简单的解决方案是JavaScript SDK,它为我们提供了一个名为FB.XFBML.parse的函数。

FB.XFBML.parse

一旦调用了无限滚动函数,我可以通过再次调用此函数来渲染新插件来加载更多数据。但是这个解析了之前加载的所有按钮,如页面上的按钮。因此,如果我有20个相似的按钮,在滚动并调用Parse函数之后,还会创建10个按钮,但前一个按钮也会被解析。

那么我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

根据文档,您可以对特定元素

执行FB.XFBML.parse
  FB.XFBML.parse(document.getElementById('foo')); 

http://developers.facebook.com/docs/reference/javascript/FB.XFBML.parse/