summaryrefslogtreecommitdiffstats
path: root/src/elements/Dom.js
diff options
context:
space:
mode:
authorUlrich-Matthias Schäfer <ulima.ums@googlemail.com>2020-04-03 18:42:19 +1000
committerUlrich-Matthias Schäfer <ulima.ums@googlemail.com>2020-04-03 18:42:19 +1000
commit7547a6a45818bcfefd545da4697196b81bd8da5b (patch)
tree0f62eb9f98b81c6fe20536d5437c9acf39e08b01 /src/elements/Dom.js
parent28e74482b8cc7b7f2e4aca099ceea9f7d7a888d5 (diff)
downloadsvg.js-7547a6a45818bcfefd545da4697196b81bd8da5b.tar.gz
svg.js-7547a6a45818bcfefd545da4697196b81bd8da5b.zip
- fixed `put()` which correctly creates an svgjs object from the passed element now before returning
- fixed `parent()` which correctly returns null if direct parent is the document or a document-fragment - fixed `add()` which correctly removes namespaces of non-root svg elements now when added to another svg element (#1086) - fixed `isRoot()` which correctly returns false, if the element is in a document-fragment
Diffstat (limited to 'src/elements/Dom.js')
-rw-r--r--src/elements/Dom.js6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/elements/Dom.js b/src/elements/Dom.js
index 2e081a8..ef51ad6 100644
--- a/src/elements/Dom.js
+++ b/src/elements/Dom.js
@@ -30,6 +30,11 @@ export default class Dom extends EventTarget {
add (element, i) {
element = makeInstance(element)
+ // If non-root svg nodes are added we have to remove their namespaces
+ if (element.removeNamespaces && this.node instanceof globals.window.SVGElement) {
+ element.removeNamespaces()
+ }
+
if (i == null) {
this.node.appendChild(element.node)
} else if (element.node !== this.node.childNodes[i]) {
@@ -146,6 +151,7 @@ export default class Dom extends EventTarget {
// check for parent
if (!parent.node.parentNode) return null
+ if (parent.node.parentNode.nodeName === '#document' || parent.node.parentNode.nodeName === '#document-fragment') return null
// get parent element
parent = adopt(parent.node.parentNode)