2013-06-22 3 views
1

У меня около 100 файлов svg, и для всех я хочу изменить одно и то же. Это оригинал:Измените параметры svg externally

<svg version="1.1" id="Laag_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" 
    width="460px" height="104px" viewBox="0 0 460 104" enable-background="new 0 0 460 104" xml:space="preserve"> 

И я хочу, чтобы изменить это так:

<svg version="1.1" id="Laag_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" 
    preserveAspectRatio="xMinYMin meet" viewBox="0 0 460 104" enable-background="new 0 0 460 104" xml:space="preserve"> 

Мой HTML-код:

<div id="main"><object width="100%" data="http://euclidthegame.com/mathexchange/7.svg" type="image/svg+xml"></object></div> 

Так что я хочу, чтобы установить высоту и ширину по умолчанию , и я хочу добавить preserveAspectRatio="xMinYMin meet". Конечно, я мог бы просто редактировать все файлы, но я хотел бы сделать это извне, используя javascript, jquery или css. Я не уверен, как изменить атрибуты во внешнем svg.

Вот что я пробовал: http://jsfiddle.net/kasper90/vV7Y8/

+0

В какой среде вы работаете (Windows, Linux)? Если ни одно из этих решений не работает для вас, я могу предоставить сценарий, который выполнит изменение в фактических файлах, без необходимости вручную проходить их вручную. – tylerauerbeck

+0

Вы изучали использование SVG Cleaner (http://libregraphicsworld.org/blog/entry/svg-cleaner-0.5-leaner-faster-runs-on-mac), SVG Scour (https://launchpad.net/scour) или SVGo (https://github.com/svg/svgo)? –

ответ

1

Возможное решение: чтобы избежать редактирования 100 файлов SVG, конвертировать его в inline <svg>, в code is found in my answer к этому вопросу SO.

И подправить код для вставки preserveAspectRatio: -

$aspectRatio = "xMinYMin meet"; 
$svg = $svg.attr('preserveAspectRatio', $aspectRatio); 

Скорость: а уже загружены <svg> образов, $.get() приведет к HTTP Error 304 - Not modified и содержимое будет читаться из кэша браузера.