好的我正在使用slimbox2并希望用户能够保存图像的高分辨率版本。 将其添加到.js文件允许使用标题中的链接保存EXACT相同的图像:
// 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',则会添加BEHIND .jpg,因此我得到“image1.jpglg”,这将无效。
有没有办法重写el.href,然后从名称中减去“.jpg”,然后将“lg.jpg”添加到文件名中?
希望这是有道理的,谢谢你的时间。
答案 0 :(得分:0)
这个答案并不是最终的答案,但它确实解决了您的具体问题。
如果文件名具有多个句点
,则此脚本将基本失败是的,有一个Javascript split()
函数:
// 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];
答案 1 :(得分:0)
如果lg
始终是扩展名前文件名的最后一部分,请尝试以下操作:
return [el.href, el.title + '<br /><a href="' + el.href.replace(/\.jpg$/i, 'lg.jpg') + '">Download this image</a>'];
答案 2 :(得分:0)
我会使用javascript的replace功能。您可以匹配字符串或正则表达式并将其替换为您想要的任何内容,在这种情况下匹配'.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));
});
});