2014-10-09 1207 views
1

我想加載外部SVG文件,我試過在svg.import.js插件演示:http://svgjs.com/import/svgjs - 加載外部SVG文件

但它未能加載該文件:http://upload.wikimedia.org/wikipedia/commons/5/57/Chess_Maurizio_Monge_Fantasy_wk.svg

我需要加載這樣的文件,我不能修改它們。

這裏有什麼問題?

馬格努斯

+0

我不認爲它喜歡Inkscape默認放置的額外Inkscape位。如果你不能修改這些文件,那麼你會被卡住,因爲它們需要通過inkscape作爲原始SVG保存。 – 2014-10-09 21:37:09

+0

我已經測試過將它保存爲普通的svg,但它仍然不起作用。 inkscape svg版本中只有一些額外的標籤,以'inkscape:'開頭。這似乎是svg.import.js的一個弱點。 Snap.svg可以毫無問題地加載原始文件。 – 2014-10-10 03:04:28

回答

2

的svg.import.js插件是過時的SVG.js V2和最多,因爲這裏說:

https://github.com/svgdotjs/svg.import.js#warning

現在這是內置與draw.svg()方法。這是在文檔的例子:

https://svgdotjs.github.io/importing-exporting

但是,您將需要加載SVG數據,而不是URL。但是,您可以使用ajax加載外部文件,並將該文件的內容傳遞給SVG.js實例。例如:

var ajax = new XMLHttpRequest() 
ajax.open('GET', 'your/file.svg', true) 
ajax.send() 
ajax.onload = function(e) { 
    draw.svg(ajax.responseText) 
} 

注意:如果從Inkscape加載文件,則使用Plain SVG格式更爲安全。