2

Facebook 现在需要访问令牌才能访问公共照片。我无法构建一个应用程序来解决这个问题,但我在一个网站上有 50 多个画廊已经坏了,我正在努力寻找最不痛苦的解决方案。

假设我在我自己的服务器上的一个目录中拥有给定相册的所有图像,我可以修改此代码以获取我的图像并将每个图像放入列表标签中吗?基本上从我的服务器而不是 Facebook 获取给定目录中的图像并构建列表。

$.getJSON('//graph.facebook.com/ALBUM_ID/photos?callback=?', function (json) {
    $.each(json.data, function () {
        $('<li></li>')
            .append('<span class="thumb" style="background: url(' + this.images[1].source + ') center no-repeat; background-size: 140%;"><a href=' + this.images[0].source + ' rel="gallery"></a></span>')
            .appendTo('#album-gallery');
    });
});
4

1 回答 1

0

您的评论01.jpg中,您可以以编程方式将图像添加到20.jpg,只需使用循环即可;

for (var i=1;i<=20;i++) {
    var url = '/pathToYourFolder/image_' + (i < 10 ? '0' : '') + i + '.jpg';

    $('<li></li>')
        .append('<span class="thumb" style="background: url(' + url + ') center no-repeat; background-size: 140%;"><a href=' + url + ' rel="gallery"></a></span>')
        .appendTo('#album-gallery');
}

请注意,我们已将您之前添加到图像中的 URL 替换为我们自己的url. 您需要更改/pathToYourFolder/您现在存储图像的文件夹的名称。

如果您随后决定想要图像 1-30 或 5-10,则只需更改for循环的范围。


解决您对此答案的评论

  1. $(document).ready()您可以通过将脚本包装在一个块中来避免在页面底部插入脚本。

  2. 如果您有多个文件名,则可以将它们存储在一个数组中,然后像这样遍历它们;

    var names = ['anything.jpg', 'foo.jpg', 'bar.jpg', 'baz.jpg'];
    
    for (var i=0;i<names.length;i++) {
        var url = '/pathToYourFolder/' + names[i];
    
        $('<li></li>')
            .append('<span class="thumb" style="background: url(' + url + ') center no-repeat; background-size: 140%;"><a href=' + url + ' rel="gallery"></a></span>')
            .appendTo('#album-gallery');
    }
    

结合$(document).ready(),这会给你;

$(document).ready(function () {
    var names = ['anything.jpg', 'foo.jpg', 'bar.jpg', 'baz.jpg'];

    for (var i=0;i<names.length;i++) {
        var url = '/pathToYourFolder/' + names[i];

        $('<li></li>')
            .append('<span class="thumb" style="background: url(' + url + ') center no-repeat; background-size: 140%;"><a href=' + url + ' rel="gallery"></a></span>')
            .appendTo('#album-gallery');
    }
});
于 2013-05-05T21:00:18.680 回答