使用jQuery单击更改OG:IMAGE的值

时间:2012-09-13 11:06:50

标签: jquery image opengraph

我只是使用单个HTML页面构建图像组合,其中所有图片都是动态加载的。到目前为止一切都很好,除了facebook META OG:IMAGE。

由于页面只加载一次,我可以分配一次OG:IMAGE URL ... 但我真的很想让每张照片都有自己的OG:IMAGE,因为这是一张相册。

点击--li class =“open-pic” - 标签加载图片。 我想在每次点击--li class =“open-pic” - 标签时更改OG:IMAGE值。

有可能吗? 我找到了这样的东西:

$('meta[name=og\\:image]').attr('content', newImageUrl);

但是,我不知道如何将其链接到li.open-pic onclick事件。 谢谢!

-G。

3 个答案:

答案 0 :(得分:14)

  

由于页面只加载一次,我可以分配一次OG:IMAGE URL ...但我真的希望每张图片都有自己的OG:IMAGE,因为这是一个相册。

更改OG元标记客户端没有实际用途 - 因为Facebook将通过它的刮刀读取这些标记,这意味着他们将对您的URL执行HTTP请求并查看HTML代码中的内容;并且刮刀不执行任何JavaScript。

解决方案:为每张照片提供单独的网址及其自己的元信息 - 并为每张照片添加相似的按钮/共享功能/任何FB功能指向该网址。

(你如何处理客户端并不重要 - 你仍然可以在一个页面中显示所有照片,通过AJAX加载新内容,无论你喜欢什么 - 但你会< / em>需要单独的照片网址才能将其识别为单独的Open Graph对象。)

答案 1 :(得分:3)

$('li.open-pic').click(function(){
 $('meta[name=og\\:image]').attr('content', newImageUrl);
});

答案 2 :(得分:3)

这是冒号。尝试使用单引号&amp;像这样的双引号:

var imgSrc = $(this).find('img').attr('src'); // image stored as variable
$('meta[property="og:image"]').attr('content', imgSrc); // assigns meta property