mirror of
https://github.com/scratchfoundation/paper.js.git
synced 2024-12-28 17:02:24 -05:00
parent
ccd92acee7
commit
5631279f99
2 changed files with 20 additions and 4 deletions
|
@ -662,8 +662,12 @@ new function() {
|
|||
|
||||
function onLoad(svg) {
|
||||
try {
|
||||
var node = typeof svg === 'object' ? svg : new self.DOMParser()
|
||||
.parseFromString(svg, 'image/svg+xml');
|
||||
var node = typeof svg === 'object'
|
||||
? svg
|
||||
: new self.DOMParser().parseFromString(
|
||||
svg,
|
||||
'image/svg+xml'
|
||||
);
|
||||
if (!node.nodeName) {
|
||||
node = null;
|
||||
throw new Error('Unsupported SVG source: ' + source);
|
||||
|
@ -693,8 +697,10 @@ new function() {
|
|||
|
||||
// Have the group not pass on all transformations to its children,
|
||||
// as this is how SVG works too.
|
||||
// See if it's a string but handle markup separately
|
||||
if (typeof source === 'string' && !/^.*</.test(source)) {
|
||||
// See if it's a string but handle markup separately, using `[\s\S]` to
|
||||
// also match the first tag if it only starts on the second line in a
|
||||
// multi-line string.
|
||||
if (typeof source === 'string' && !/^[\s\S]*</.test(source)) {
|
||||
// First see if we're meant to import an element with the given
|
||||
// id.
|
||||
var node = document.getElementById(source);
|
||||
|
|
|
@ -158,6 +158,16 @@ test('Import SVG switch', function(assert) {
|
|||
});
|
||||
});
|
||||
|
||||
test('Import SVG string with leading line-breaks', function() {
|
||||
var svg = '\n<svg xmlns="http://www.w3.org/2000/svg">\n <rect fill="red" width="100" height="100"/>\n</svg>\n'
|
||||
var imported = paper.project.importSVG(svg);
|
||||
equals(imported.children.length, 1);
|
||||
equals(imported.firstChild, new Shape.Rectangle({
|
||||
size: [100, 100],
|
||||
fillColor: 'red'
|
||||
}));
|
||||
});
|
||||
|
||||
function importSVG(assert, url, message, options) {
|
||||
var done = assert.async();
|
||||
project.importSVG(url, {
|
||||
|
|
Loading…
Reference in a new issue