0

首先是一个简短的解释...以下两行确保一旦我的网站在 facebook 上共享,就会发布自定义图像 (share-thumbnail.png)。

<meta property="og:image" content="images/share-thumbnail.png"/>
<link rel="image_src" href="<images/share-thumbnail.png" />

当我单击页面上的特定共享链接时,你们能想出任何创造性的方法来覆盖该行为吗?

例如<a class="special-sharing" href="#">Share with special image</a>,我的页面上有一个锚点,当单击该锚点时,我不想使用标题中定义的 share-thumbnail.png。

我的想法是使用 jquery 来监听 .special-sharing 链接上的点击事件,然后…… preventDefault(); 并将例如我的元标记的内容属性更改为新的图像src。然后打电话给 facebook?sharer=blabla。

你会怎么解决?

4

1 回答 1

1

(警告:我不熟悉 Facebook 的 API,只熟悉 Javascript 和一般的网络。)

不幸的是,你不能。

虽然可以使用 jQuery(或一般的 Javascript)来影响<meta><link>标记,但无法在用户浏览器中当前加载的页面副本之外进行更改。当调用到 Facebook 的链接时,当前页面被丢弃并加载 Facebook 的页面,然后它在您的页面上执行自己的命中以获取og:image,它仍然具有原始值,因为服务器上的文件没有更改。

相反,您也许可以设置您的服务器,以便您可以通过 URL 自定义图像。例如,已经http://www.example.com/mypage.php为 生成了默认值og:image,但http://www.example.com/mypage.php?special-image=foo.gif更改了<meta>标签的值。然后,您可以使用 Javascript 更改传递给 Facebook 的共享者,以便它使用指向特殊图像的特殊 URL。

于 2011-03-10T07:19:35.957 回答