Update parser.js

Changed parsegradient to consider href element
This commit is contained in:
Andrea Bogazzi 2014-08-16 08:15:07 +02:00
parent 011674707a
commit 78db91225f

View file

@ -643,21 +643,36 @@
getGradientDefs: function(doc) {
var linearGradientEls = doc.getElementsByTagName('linearGradient'),
radialGradientEls = doc.getElementsByTagName('radialGradient'),
el, i,
gradientDefs = { };
el, i, j = 0, id, xlink, elList = [ ],
gradientDefs = { }, postProcess = { };
elList.lenght = linearGradientEls.length + radialGradientEls.length;
i = linearGradientEls.length;
for (; i--; ) {
el = linearGradientEls[i];
gradientDefs[el.getAttribute('id')] = el;
elList[j++] = linearGradientEls[i];
}
i = radialGradientEls.length;
for (; i--; ) {
el = radialGradientEls[i];
gradientDefs[el.getAttribute('id')] = el;
elList[j++] = radialGradientEls[i];
}
for (; j--; ) {
el = elList[j];
xlink = el.getAttribute('xlink:href');
id = el.getAttribute('id');
if (xlink) {
postProcess[id] = xlink.substr(1);
}
gradientDefs[id] = el;
}
for (id in postProcess) {
var el2 = gradientDefs[postProcess[id]].cloneNode(true);
el = gradientDefs[id];
while (el2.firstChild != null) {
el.appendChild(el2.firstChild);
}
}
return gradientDefs;
},