fix(IE11): first fixes

Closes #1179
This commit is contained in:
Marc Laval 2015-03-31 22:56:45 +02:00
parent a96c149793
commit 90d9a1df3f
1 changed files with 12 additions and 8 deletions

View File

@ -56,8 +56,12 @@ export class BrowserDomAdapter extends GenericBrowserDomAdapter {
type(node:string) { type(node:string) {
return node.type; return node.type;
} }
content(node:HTMLTemplateElement):Node { content(node:HTMLElement):Node {
if (this.hasProperty(node, "content")) {
return node.content; return node.content;
} else {
return node;
}
} }
firstChild(el):Node { firstChild(el):Node {
return el.firstChild; return el.firstChild;
@ -216,10 +220,10 @@ export class BrowserDomAdapter extends GenericBrowserDomAdapter {
return element.removeAttribute(attribute); return element.removeAttribute(attribute);
} }
templateAwareRoot(el) { templateAwareRoot(el) {
return el instanceof HTMLTemplateElement ? el.content : el; return this.isTemplateElement(el) ? this.content(el) : el;
} }
createHtmlDocument() { createHtmlDocument() {
return document.implementation.createHTMLDocument(); return document.implementation.createHTMLDocument('fakeTitle');
} }
defaultDoc() { defaultDoc() {
return document; return document;
@ -234,7 +238,7 @@ export class BrowserDomAdapter extends GenericBrowserDomAdapter {
return n instanceof HTMLElement && n.matches(selector); return n instanceof HTMLElement && n.matches(selector);
} }
isTemplateElement(el:any):boolean { isTemplateElement(el:any):boolean {
return el instanceof HTMLTemplateElement; return el instanceof HTMLElement && el.nodeName == "TEMPLATE";
} }
isTextNode(node:Node):boolean { isTextNode(node:Node):boolean {
return node.nodeType === Node.TEXT_NODE; return node.nodeType === Node.TEXT_NODE;
@ -255,10 +259,10 @@ export class BrowserDomAdapter extends GenericBrowserDomAdapter {
var result = document.importNode(node, true); var result = document.importNode(node, true);
// Workaround WebKit https://bugs.webkit.org/show_bug.cgi?id=137619 // Workaround WebKit https://bugs.webkit.org/show_bug.cgi?id=137619
if (this.isTemplateElement(result) && if (this.isTemplateElement(result) &&
!result.content.childNodes.length && node.content.childNodes.length) { !this.content(result).childNodes.length && this.content(node).childNodes.length) {
var childNodes = node.content.childNodes; var childNodes = this.content(node).childNodes;
for (var i = 0; i < childNodes.length; ++i) { for (var i = 0; i < childNodes.length; ++i) {
result.content.appendChild( this.content(result).appendChild(
this.importIntoDoc(childNodes[i])); this.importIntoDoc(childNodes[i]));
} }
} }