Измените окончание img src для рендеринга другой предустановки изображения scene7. (регулярное выражение справки)

Я пытаюсь изменить окончание нашего изображения, чтобы сделать изображения меньше на мобильных устройствах. Мы используем Adobe Scene 7, поэтому я могу установить предустановки для полноразмерного изображения, а затем для мобильного изображения, а затем мне просто нужен код для изменения URL. Я нашел этот вопрос здесь и пытаюсь применить его к своему коду. Моя проблема в том, что я понятия не имею, как написать регулярное выражение для этого, знаки доллара меня отталкивают.

$('img').each(function () {
    var src = $(this).attr('src');
    $(this).attr('src', src.replace($fullbanner$, '$mobilebanner$');
}); 

Чтобы упростить задачу, кто-нибудь может помочь мне написать регулярное выражение, которое будет заполнять строку "src.replace(,);" раздел? Начальным значением URL будет домен / company / banner /homepage/img_name?$ Fullbanner$, а затем нам просто нужно изменить его на domain / company / banner /homepage/img_name?$ Mobilebanner$.

Кроме того, если это так просто, как просто сказать:

src.replace('$fullbanner$', '$mobilebanner');

тогда просто скажи так. Я действительно ценю любую помощь, которая предлагается.

1 ответ

Решение

Ты можешь использовать attr(function) который будет зацикливаться на каждом экземпляре:

$('img').attr('src', function(index, existingSrc){
    return existingSrc.replace('$fullbanner$', '$mobilebanner');
});

Обратите внимание, что это не очень эффективная стратегия, так как она не помешает браузеру отправлять начальные запросы для полноразмерных изображений, так как любые изображения, которые существуют при начальной загрузке страницы, уже будут иметь запросы, сделанные до запуска вашего скрипта.

Другие вопросы по тегам