我有一个问题(显然), 我已经完成了一个用AJAX发送数据的表单。 我成功时从请求中获取返回值,并将其附加到og标记内容中。 例如
$('meta[property="title"]').attr('content', data.title);
在我在chrome控制台中检查Elements后,这些更改已完成。 但如果我点击Facebook分享按钮,它并不关心我的变化...... 最后,我想要改变的是og标签标题,描述和图像。
任何解决方案? 谢谢大家。
答案 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>
希望有所帮助