目标:
我想在我的 fancybox 中有一个共享按钮,用于在 Facebook 共享器中使用正确的图像名称共享我正在查看的图像。我希望当用户在 Facebook 中点击这个时,他会到达一个带有正确图像的打开的 Fancybox。
问题:
我有一个带有 Jquery FancyBox ( http://fancyapps.com/fancybox/ ) 的画廊。我用我在这个 fiddle ( http://jsfiddle.net/G5TC3/ ) 中找到的代码添加了一个共享按钮。
我的分享按钮有效,但从网站获取 meta og,我想从我正在查看的图像中获取 og:image。
$(".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 + '&layout=button_count&show_faces=true&width=500&action=like&font&colorscheme=light&height=23" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:110px; height:23px;" allowTransparency="true"></iframe>';
}
},
helpers : {
title : {
type: 'inside'
}
}
});
对于点击我的链接并打开带有正确图像的 Facybox 的用户,我不知道该怎么做以及是否可能。
我所知道的:
我知道我必须为每张图片提供唯一的 URL,而且我想我已经拥有了。来 self 网站的 ex:
www.myURL.com/images/gallery/myimages_1.jpg
www.myURL.com/images/gallery/myimages_2.jpg
是否正确?
我想我必须通过图像 url 更改共享器中的“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 类)时,我获得了图像 URL 并更改了元数据(使用 facebook Id)。它有效,但我认为 Facebook 在页面加载时会检查元数据,那么我如何才能强制 Facebook 重新检查我的元数据以采纳良好的拇指来分享?
最佳答案
og:image 不能通过 url 改变。您需要为不同的图像提供不同的共享网址。
例如:-
www.myURL.com/?pic=img1
www.myURL.com/?pic=img2 等
服务器端语言(如 php)可以读取“pic”GET 参数并更改 og:image。
关于facebook - 在 fancybox 共享按钮中动态更改 facebook og 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17465785/