使用jquery影响元标记或链接标记?

时间:2011-03-10 06:44:51

标签: jquery facebook meta-tags metatag link-tag

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

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

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

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

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

你会如何解决这个问题?

1 个答案:

答案 0 :(得分: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。