mirror of
https://github.com/Hopiu/fabric.js.git
synced 2026-05-17 10:01:08 +00:00
Update parser.js
Changed parsegradient to consider href element
This commit is contained in:
parent
011674707a
commit
78db91225f
1 changed files with 22 additions and 7 deletions
|
|
@ -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;
|
||||
},
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue