gpt4 book ai didi

javascript - 如何避免重新解析 XFBML 元素?

转载 作者:行者123 更新时间:2023-11-30 06:05:51 25 4
gpt4 key购买 nike

我正在使用 JavaScript Facebook SDK 来解析 xfbml 元素。但是,我也使用 ajax 分页。这是发生了什么。

我加载了元素的第一页,每个元素都包含一个 XFBML 中的赞按钮和一个评论框。我调用了SDK的parse方法来解析元素。

如果用户加载元素的下一页,它们将通过 Ajax 添加到 DOM。但是,当我现在调用 parse 方法时,第一页的元素再次被解析,这显然是不希望的。

我知道 parse 方法提供了另一个入口根,但由于所有对象都是兄弟对象,这对我来说不是一个选项。有没有办法告诉解析器只解析他还没有解析过的元素?还是我必须删除所有已经解析过的旧 xfbml 标签?

最佳答案

FB.XFBML.parse()是唯一可用于重新解析 XFBML 的函数,您可以将 DOM 元素作为起点传递给它,或者不传递任何内容并让它解析整个 DOM 结构。

由于这些是您唯一的选择,我建议您修改 Ajax 调用。与其让 Ajax 调用直接将新元素插入到它们的最终 DOM 位置,使它们更难重新解析,不如创建一个 <div> (或其他一些元素),将 Ajax 获取的内容加载到其中,然后调用 FB.XFBML.parse()<div> 上在将内容移动到适当的位置之前?你可以 Conceal <div> ,并使用解析函数的第二个回调参数来执行移动:

//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,所以请原谅任何过分的语法,但希望你能理解。

关于javascript - 如何避免重新解析 XFBML 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4825984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com