尝试使用客户端jquery和ajax更新Facebook Open Graph元标记

我使用ajax渲染一个带有Facebook Like Button插件的内容页面。

问题是,当用户提出类似的问题时,Facebook会提取元信息,但我不知道如何使用ajax分配元数据。

我尝试使用append to head int FB.init但它似乎不起作用,当用户喜欢Facebook上的页面时,更新没有反映出来

$('head').append("');

问题是facebook喜欢提取元信息,但我不知道如何使用ajax分配meta。

我尝试使用append to head int FB.init但它似乎不起作用。

当然这不起作用,因为Facebook的刮刀从您的服务器请求您的URL – 并不关心DOM在任何用户的浏览器中当前的样子。

无法在客户端添加Open Graph元数据。

实际上你可以使用这样的脚本:

 /// Append Meta tags function setMT(metaName, name, value) { var t = 'meta['+metaName+'='+name+']'; var mt = $(t); if (mt.length === 0) { t = ''; mt = $(t).appendTo('head'); } mt.attr('content', value); } 

并从body调用此函数:

 setMT('property', 'og:title', 'Title for Facebook'); 

我在新闻网站http://www.livepage.info上有类似的内容

小心使用’ .append() ‘。 根据JQuery Docs ,此方法具有移动效果(从源,从副本读取到目标并删除源)。

理论上的方法是这样的:

 headObj = $("head"); keywordObj = $(headObj).find("meta[name='keywords']"); newKeywords = $(keywordObj).attr("content"); newKeywords += myKeywords; $(keywordObj).attr("content", newKeywords); 

下载并安装适用于浏览器FireFox的插件FireBug,以便您可以在运行时检查更改。