0

好的,我正在使用 slimbox2 并希望用户能够保存图像的高分辨率版本。将此添加到 .js 文件允许保存完全相同的图像,并在标题中添加链接:

    // AUTOLOAD CODE BLOCK (MAY BE CHANGED OR REMOVED) 
    jQuery(function($) {
    $("a[rel^='lightbox']").slimbox({/* Put custom options here */}, function(el) {
    return [el.href, el.title + '<br /><a href="' + el.href + '">
    Download this image</a>'];
    }, function(el) {
            return (this == el) || ((this.rel.length > 8) && (this.rel == el.rel));
    });
    });

但是,我希望用户能够保存仅在名称中添加“lg”的高分辨率版本。

例如,它不是下载显示的“image1.jpg”,而是下载“image1lg.jpg”

上面的代码使用 el.href 将图像加载到链接中,但如果我使用 + 'lg' 它会在 .jpg 后面添加它,所以我会得到“image1.jpglg”,它不起作用。

有没有办法删除 el.href,然后从名称中减去“.jpg”,然后将“lg.jpg”添加到文件名中?

希望这是有道理的,谢谢你的时间。

4

3 回答 3

0

这个答案不是一个万能的答案,但它确实解决了您的具体问题。

如果文件名有多个句点,此脚本将基本上失败

是的,有一个 Javascriptsplit()函数:

// The file
var string = 'filename.jpg'

// Split on periods
var parts = string.split('.');

// parts[0] = filename
// parts[1] = jpg

// Bring the string back together and add an 'lg' where needed
var new_string = parts[0]+'lg.'+parts[1];
于 2013-11-14T16:19:20.420 回答
0

如果lg始终是扩展名之前文件名的最后一部分,请尝试以下操作:

return [el.href, el.title + '<br /><a href="' + el.href.replace(/\.jpg$/i, 'lg.jpg') + '">Download this image</a>'];
于 2013-11-14T16:20:30.020 回答
0

我会使用javascript的替换功能。您可以匹配字符串或正则表达式并将其替换为您想要的任何内容,在这种情况下匹配“.jpg”并将其替换为“lg.jpg”。

jQuery(function($) {
    $("a[rel^='lightbox']").slimbox({/* Put custom options here */}, function(el) {
        return [el.href, el.title + '<br /><a href="' + el.href.replace('.jpg', 'lg.jpg') + '"> Download this image</a>'];
    }, function(el) {
        return (this == el) || ((this.rel.length > 8) && (this.rel == el.rel));
    });
});
于 2013-11-14T16:27:03.697 回答