Javascript 如何避免重新解析XFBML元素?
我正在使用JavaScript Facebook SDK解析xfbml元素。但是,我也使用ajax分页。下面是发生的情况 我加载元素的第一页,每个元素在XFBML中都包含一个like按钮和一个注释框。我调用SDK的parse方法来解析元素 如果用户加载了元素的下一页,它们将通过Ajax添加到DOM中。然而,当我现在调用parse方法时,第一个页面的元素再次被解析,这显然是不需要的 我知道parse方法提供了另一个条目根,但由于所有对象都是同级对象,所以我不选择这个选项。有没有办法告诉解析器只解析他尚未解析的元素?或者我必须删除所有已经解析过的旧xfbml标记吗?是重新解析xfbml的唯一可用函数,您可以将DOM元素作为起点传递给它,也可以不传递任何内容,让它解析整个DOM结构 由于这些是您唯一的选择,我建议您修改Ajax调用。与其让Ajax调用直接将新元素插入它们的最终DOM位置,使它们更难重新解析,不如创建一个Javascript 如何避免重新解析XFBML元素?,javascript,facebook,facebook-graph-api,Javascript,Facebook,Facebook Graph Api,我正在使用JavaScript Facebook SDK解析xfbml元素。但是,我也使用ajax分页。下面是发生的情况 我加载元素的第一页,每个元素在XFBML中都包含一个like按钮和一个注释框。我调用SDK的parse方法来解析元素 如果用户加载了元素的下一页,它们将通过Ajax添加到DOM中。然而,当我现在调用parse方法时,第一个页面的元素再次被解析,这显然是不需要的 我知道parse方法提供了另一个条目根,但由于所有对象都是同级对象,所以我不选择这个选项。有没有办法告诉解析器只解析
(或其他元素),将Ajax获取的内容加载到其中,然后在将内容移动到适当的位置之前,在
上调用FB.XFBML.parse()
?您可以隐藏
,并使用parse函数的第二个回调参数执行移动:
//do Ajaxy stuff here to insert new content into hidden div 'foo'
FB.XFBML.parse(document.getElementById('foo'), function() {
document.getElementById('yourContent').innerHTML += document.getElementById('foo').innerHTML;
});
我已经有一段时间没有使用Javascript了,所以请原谅我的语法有点过分,但希望你能理解我的意思