在fancybox共享按钮中动态更改facebook og图像

时间:2013-07-04 08:45:36

标签: facebook image dynamic share fancybox-2

目标:
我想在我的fancybox中有一个共享按钮,它与Facebook共享器中的正确图像名称共享我正在查看的图像。我希望当用户在Facebook上点击它时,他会以正确的图像到达打开的Fancybox。

问题:
我有一个Jquery FancyBox的画廊(http://fancyapps.com/fancybox/)。我添加了一个共享按钮,其中包含我在这个小提琴中找到的代码(http://jsfiddle.net/G5TC3/)。 我的分享按钮有效,但从网站上获取元数据,我想从我正在查看的图像中获取og:图像。

$(".fancybox")
.attr('rel', 'gallery')
.fancybox({
    beforeShow: function () {
        if (this.title) {

            // Add FaceBook like button
            this.title += '<iframe src="//www.facebook.com/plugins/like.php?href=' + this.href + '&amp;layout=button_count&amp;show_faces=true&amp;width=500&amp;action=like&amp;font&amp;colorscheme=light&amp;height=23" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:110px; height:23px;" allowTransparency="true"></iframe>';
        }
    },
    helpers : {
        title : {
            type: 'inside'
        }
    }  
});

对于点击我的链接并使用正确的图片到达打开的Facybox的用户,我不知道该怎么做以及是否可能。

我所知道的:
我知道每个图像都必须有唯一的URL,我想我已经拥有了它。来自我的网站:
www.myURL.com/images/gallery/myimages_1.jpg
www.myURL.com/images/gallery/myimages_2.jpg

这是对的吗?

我想我必须通过图片网址更改共享者中的“this.href”。首先是正确的吗?第二个(抱歉,我是javascript的新手)我该怎么做?

我希望有人可以帮助我。对不起我的英语我正在努力写出我最好的英语:) 如果您需要更多信息,请不要犹豫。

由于

[编辑]:

我在画廊页面上添加了这个脚本

$(function()
{
    $('.thumbs').click(function()
    {
        $tempImgName = $(this).attr('id');
        $tempUrl = this.href + '/images/thumbs/' + $tempImgName;
        $meta = document.getElementById('facebook');
        $meta.setAttribute("content",$tempUrl);
    });
});

所以当我点击一个缩略图(带有.thumbs类)时,我得到了图片网址,然后我更改了元数据(带有facebook ID)。它有效,但我认为Facebook会在页面加载时检查元数据,那么我如何强制Facebook重新检查我的元数据以便分享好的大拇指?

1 个答案:

答案 0 :(得分:0)

og:图片无法通过网址更改。您需要为不同的图像提供不同的共享URL。

例如: -

www.myURL.com/?pic=img1

www.myURL.com/?pic=img2等

服务器端语言(如php)可以读取“pic”GET参数并更改og:image。