imgLiquid icon indicating copy to clipboard operation
imgLiquid copied to clipboard

Url is encoded twice if already encoded

Open petertflem opened this issue 10 years ago • 2 comments

It seems whenever the plugin gets an url that is already encoded, it encodes it again, thus destroying the url.

Perhaps you can test if it is encoded before encoding it, e.g. with a regex, something like /%[0-9A-Z]{2}/g. (that regex needs testing).

Maybe you can do like this:

if (!new RegExp(/%[0-9A-Z]{2}/g).test($img.attr('src'))) {
    // Change
    $imgBoxCont.css({ 'background-image': 'url("' + encodeURI($img.attr('src')) + '")' });
} else {
    // Change
    $imgBoxCont.css({ 'background-image': 'url("' + $img.attr('src') + '")' });
}

petertflem avatar Apr 02 '14 11:04 petertflem

Seeing the same thing here. I actually don't think we should need to encode the background-image URL at all.

funwhilelost avatar Dec 02 '14 00:12 funwhilelost

@petertflem I'm working around it by running this snippet just before running imgLiquid:

if (new RegExp(/%[0-9A-Z]{2}/g).test($img.attr('src'))) {
  $img.attr("src", decodeURIComponent($img.attr("src")));
}
$img.parent().imgLiquid({ ... });

YMMV.

funwhilelost avatar Dec 02 '14 00:12 funwhilelost