From d4adaee4eba49922e771db352a75181a9415a76a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=87=8C=E6=81=92?= Date: Wed, 1 Apr 2015 21:46:40 +0800 Subject: [PATCH] use ie8 feature detect instead of try catch --- src/browser/ui/dom/DOMChildrenOperations.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/browser/ui/dom/DOMChildrenOperations.js b/src/browser/ui/dom/DOMChildrenOperations.js index f964d47da6..a87200cc31 100644 --- a/src/browser/ui/dom/DOMChildrenOperations.js +++ b/src/browser/ui/dom/DOMChildrenOperations.js @@ -33,13 +33,14 @@ function insertChildAt(parentNode, childNode, index) { // browsers so we must replace it with `null`. // fix render order error in safari - try { + if (!(document.all && !document.addEventListener)) { parentNode.insertBefore( childNode, parentNode.childNodes.item(index) || null ); - } catch (e) { - //IE8 can't use `item` when childNodes is empty. + } else { + //IE8 can't use `item` when childNodes is empty or dynamic insert. + //But read is well after insert. parentNode.insertBefore( childNode, parentNode.childNodes[index] || null