Jquery заменить на регулярное выражение: замена атрибута в SRC другим атрибутом - PullRequest
0 голосов
/ 24 февраля 2012

Я использую Google Static Maps, который загружает карту изображения:

<img src="http://maps.google.com/maps/api/....&someparameter&someparameter&scale=1">

Обратите внимание на параметр "scale=1" в конце. Мне нужно заменить его на "scale=2" только на дисплеях высокой плотности с WebKit, чтобы загрузить версию с высоким разрешением из Google.

Я использую этот скрипт поиска / замены при загрузке DOM с условием, и он не работает. Window.devicePixelRatio работает в WebKit (проверено); но что-то не так с функцией внутри условия if.

$(function()
    {
        if (window.devicePixelRatio >= 1.5)
        {
            $('img[src*="scale=1"]').each(function() {
                var newSrc = $(this).attr('src');
                newStr = newSrc.replace('/scale=1/','scale=2');
                $(this).attr('src', newSrc);
            });
        }
        else
        {
        }   
    });    

Спасибо за предложения!

Ответы [ 2 ]

4 голосов
/ 24 февраля 2012

Похоже, вы получаете значение атрибута src, сохраняете его в переменной с именем newSrc, затем заменяете scale=1 и сохраняете результат в newStr, затем вы устанавливаете src атрибут изображения newSrc, исходное значение?

Разве это не должно быть:

$('img[src*="scale=1"]').each(function() {
    var newSrc = $(this).attr('src');
    newSrc = newSrc.replace('scale=1','scale=2');
    $(this).attr('src', newSrc);
});
4 голосов
/ 24 февраля 2012

.replace () принимает либо RegExp, либо строку, вы дали ей строку, которая выглядит как RegExp:

newStr = newSrc.replace('scale=1','scale=2');
...