我花了几天时间试图解决这个问题,但没有成功。问题是当用户点击一个赞按钮时,它并不表示他们喜欢墙上的任何东西。虽然代码在我在本地主机上的测试设置上正常工作,但它在生产中不起作用。
我的客户正在使用 wordpress 的图片库插件以及称为 FancyBox 的灯箱插件,以在用户单击缩略图时显示更大版本的图像。他让我在每个fancybox 中添加一个类似facebook 的按钮。
由于 fanybox 是动态生成的,因此每当呈现 fancybox 时,我都会生成一个新的 like 按钮 iframe。点赞按钮 iframe 使用的 URL 对用户点击的图片来说是唯一的。该代码将 &photo=/location/of/photo.jpg 添加到图库 URL。然后整个自定义 URL 通过 encodeURIComponent() 传递并传递给 iframe。
这是用于生成 iframe 的代码片段
var currentURL = document.URL,
currentIMG = $("#fancybox-img").attr("src").split("http://www.downsplash.com").pop();
if (currentURL.match("&photo=")) {
var currentURL = currentURL.split("&photo=").shift();
};
var thisURL = encodeURIComponent(currentURL + "&photo=" + currentIMG);
<span id="fancybox-title-over">
<div id="facebook-like" style="display:inline-block;">
<iframe src="//www.facebook.com/plugins/like.php?href=" + thisURL + "&send=false&layout=button_count&width=80&show_faces=true&action=like&colorscheme=dark&font&height=21&appId=314592468583405" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:80px; height:21px;" allowTransparency="true"></iframe>
</div>
</span>
喜欢按钮代码似乎可以顺利工作,它允许您喜欢和不喜欢照片。唯一的问题是,当一张照片被点赞时,用户墙上什么也没有出现。
笔记:
- 仅使用没有自定义 &photo=/location/of/photo.jpg 的基本 URL 时,一切正常
- 在 localhost 上测试此代码时,它会发布到 facebook。
我不确定为什么这些喜欢没有出现在用户的 Facebook 墙上。有没有人有任何想法?