Если я работаю с <img>
элементами (в отличие от фоновых изображений CSS), я использую удобный обходной путь, комбинацию Modernizr (библиотека JavaScript, которая обнаруживает наличие определенных функций,, такие как поддержка .svg, в браузерах) и несколько строк jQuery:
$(".no-svg img").each(function() {
var $this = $(this);
if ($this.attr("src").indexOf(".svg") > -1) {
var isSvg = $this.attr("src").toString();
var isPng = isSvg.replace(".svg", ".png");
$this.attr("src", isPng);
}
});
1) Я создаю .png версии каждого файла .svg.2) Modernizr присваивает элементу html класс .no-svg
, если обнаруживает отсутствие поддержки .svg.3) JQuery меняет расширения файлов..indexOf(".svg")
проверяет, содержится ли строка ".svg"
в значении src
, возвращая -1
, если она не находит, и положительное целое число, если это так.Если он находит ".svg"
, вся строка src
перетягивается в isSvg
, а .replace()
заменяет .svg
на .png
и сохраняет результат как isPng
, который затем устанавливается как значение src
.