2013-06-22 52 views
1

我有大约100个svg文件,对于所有我想改变相同的东西。这是原文:外部更改svg选项

<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这个太问题。

和调整的代码中插入preserveAspectRatio: -

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

速度:作为<svg>图像已经被加载了,$.get()将导致HTTP Error 304 - Not modified和内容会从浏览器缓存中读取。