Chrome и Firefox интерпретируют url () по-разному, что делает .replace () регулярным выражением - PullRequest
1 голос
/ 27 ноября 2010

Следующее необходимо удалить url(' часть строки, ранее возвращенную из .css('background-image'), в объекте элемента в DOM, который прекрасно работает в Firefox, но не в Chrome.

// example value of artworkURL: url('http://somewebsite/picture.jpg')
artworkURL = artworkURL.replace(/url\(\'/g,'');

Я обнаружил, что это связано с тем, что Chrome удаляет '' из url('picture.jpg'), однако удаление \' из регулярного выражения приводит к разрыву Firefox, поскольку Firefox заменил '' на "", но все еще понимает регулярное выражение , Даже удаление скобок в CSS заставляет Firefox отображать "" обратно.

Как сделать так, чтобы оба браузера соответствовали различным требованиям?

1 Ответ

2 голосов
/ 27 ноября 2010

Попробуйте:

artworkURL = artworkURL.replace(/url\(['"]?/g,'');

Это удалит ', если он присутствует, и даже учитывает браузеры, которые могут вместо этого использовать ". Аналогичное регулярное выражение можно использовать для удаления конца:

artworkURL = artworkURL.replace(/['"]?)/g,'');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...