fix(browser): template elements should have content imported instead of the element itself.

This commit is contained in:
Alex Rickabaugh 2015-05-18 15:24:00 -07:00
parent 1054f6a9ab
commit c9ab8e4be8
1 changed files with 4 additions and 9 deletions

View File

@ -296,16 +296,11 @@ isShadowRoot(node): boolean {
return node instanceof DocumentFragment; return node instanceof DocumentFragment;
} }
importIntoDoc(node: Node) { importIntoDoc(node: Node) {
var result = document.importNode(node, true); var toImport = node;
// Workaround WebKit https://bugs.webkit.org/show_bug.cgi?id=137619 if (this.isTemplateElement(node)) {
if (this.isTemplateElement(result) && !this.content(result).childNodes.length && toImport = this.content(node);
this.content(node).childNodes.length) {
var childNodes = this.content(node).childNodes;
for (var i = 0; i < childNodes.length; ++i) {
this.content(result).appendChild(this.importIntoDoc(childNodes[i]));
}
} }
return result; return document.importNode(toImport, true);
} }
isPageRule(rule): boolean { isPageRule(rule): boolean {
return rule.type === CSSRule.PAGE_RULE; return rule.type === CSSRule.PAGE_RULE;