gpt4 book ai didi

facebook - 如何重新加载现有的 facebook 之类的按钮而不重新创建它?

转载 作者:行者123 更新时间:2023-12-02 05:06:32 25 4
gpt4 key购买 nike

我想在我的页面中动态刷新一个 fb:like 插件。

例如,在 index.html 中,我有:

<fb:like id="fbtest" href="http://www.urltest.com" send="true" width="450" show_faces="true"></fb:like>

(Facebook 已初始化,一切正常。)

然后,我想动态更改此赞按钮的 URL。所以,对于 jQuery,我这样做:

$('#fbtest').attr('href', 'http://www.urltest2.com').empty().off().removeData();
FB.XFBML.parse();

它不起作用...只有当我删除 fb:like 标签并重新创建它时它才起作用(完全相同的 DOM!)。

如您所见:Update FB:Like URL Dynamically using JavaScript ,描述的所有方法都会重新创建 fb:like 标签...我需要刷新现有的 fb:like...而不是重新创建它。可能吗?

编辑:这是一个用于测试的 fiddle :-):http://jsfiddle.net/nRTkS/

谢谢!

最佳答案

不,我不认为这是可能的。
FB.XFBML.parse 方法,顾名思义,只是解析:

This function parses and renders XFBML markup in a document on the fly

一旦一个插件已经被渲染,它就不会被重新渲染,否则行为可能会有点奇怪,例如你在同一页面上有多个插件,你改变了一个类似插件的 url 属性然后调用 FB.XFBML.parse,它将重新呈现整个文档和其中的插件。

所以是的,您可以确保在将元素传递给方法时调用该方法,或者 sdk 可以只为每个插件维护一个状态,只有在状态发生变化时才重新呈现,但所有这些都更重要复杂然后只需从 dom 中删除插件,输入新的 fb:like 标记,然后调用 FB.XFBML.parse

现在,我认为这是真正的原因,但这只是一个猜测。
SDK 在包含实际插件的插件容器内创建一个 iftame。
为了更改类似操作的 url,需要进行跨域通信,我认为(对于 fb sdk)仅在从插件到包含页面的一个方向上是可能的(因此 edge.create event)。

关于facebook - 如何重新加载现有的 facebook 之类的按钮而不重新创建它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10873117/

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