我有一个AJAX网站,我希望能够将页面发布到Facebook,而且我无法动态更改og meta标签。有很多与此相关的Stack Overflow线程,通常有相同的答案:
$('meta[property="og:title"]').attr('content', 'Pasta la vista');
我无法让它发挥作用。我尝试了其他线程中建议的一些变体,包括:
$('meta[property=og:title]).attr('content', 'Pasta la vista');
// no quotes around og:title
$('meta[property='og\\:title']').attr('content', 'Pasta la vista');
// adding the "\\" after og and before the colon
$('meta[name='og\\:title']').attr('content', 'Pasta la vista');
// changing "property" to "name". Someone suggested this was a Chrome issue
$('meta[property='og\\:title']').attr('content', var);
// instead passing a variable as the second argument rather than a string
似乎其他人已经取得了一些成功,但我似乎无法弄明白。我已经尝试将这些传递给Facebook调试器以及通过浏览器检查页面源输出,但没有结果。
UPDATE 我唯一能想到的就是创建基本上只包含这些og元标记的代理html文件,并执行重定向到正确哈希URL的javascript。然后,可能会以某种方式使用HTML5 pushState将此虚荣URL再次放入地址栏中,以防用户想要在Facebook上共享链接。
据我所知,我可以在Facebook调试器中获取不同的og元标记信息的唯一方法是使用完全独立的HTML文件。