使用jQuery更改meta facebook og

时间:2014-03-24 19:10:28

标签: javascript jquery facebook facebook-opengraph

我有一个问题(显然), 我已经完成了一个用AJAX发送数据的表单。 我成功时从请求中获取返回值,并将其附加到og标记内容中。 例如

$('meta[property="title"]').attr('content', data.title);

在我在chrome控制台中检查Elements后,这些更改已完成。 但如果我点击Facebook分享按钮,它并不关心我的变化...... 最后,我想要改变的是og标签标题,描述和图像。

任何解决方案? 谢谢大家。

2 个答案:

答案 0 :(得分:2)

当Facebook上的页面喜欢引用时,Facebook会从结束请求网址,下载HTML并使用以下方式解析一个非常简化的HTML解析器,用于查找OpenGraph标记。

出于这个原因,Facebook只能看到服务器直接生成的HTML。嵌入在HTML中的任何JavaScript都不会运行,也不会加载页面引用的任何资源。

您需要通过操纵URL来找出一些传达信息的方法;例如添加URL参数,为内容分配永久链接,使用Web服务器上的重写规则等。

答案 1 :(得分:0)

一个URL只能有一个opengraph描述。但是,您可以添加一些变量,以便根据内容更改opengraph标记。让我们假设您有一个页面www.example.com并想分享一些实体。如果您有用户,则可以共享www.example.com?user=[id]并设置服务器端代码以执行此操作:

if (isset($_GET['user'])) {
   // Opengraph for user
   // Perhaps you wanna load the user and show his infos.
}
if (isset($_GET['team'])) {
   // opengraph for team
}
else {
   // Default opengraph
}

不要忘记opengraph IMAGE必须在DOM中。您可以随时添加

<div style="display: none;">
<img src="[path to the shared image]" />
</div>

希望有所帮助