From 51bfd511d2cc47dd5343dc9887570f17da9eaca4 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Gerardy Date: Thu, 18 Aug 2016 01:05:16 +0200 Subject: [PATCH] Fix #1252, re-fix #348 --- mithril.js | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/mithril.js b/mithril.js index 7ab4dcd3..bd7b62dc 100644 --- a/mithril.js +++ b/mithril.js @@ -1081,8 +1081,14 @@ // // #348 don't set the value if not needed - otherwise, cursor // placement breaks in Chrome + // #1252 likewise when `contenteditable` is set on an element. try { - if (tag !== "input" || node[attrName] !== dataAttr) { + if ( + tag !== "input" && !node.isContentEditable + /* eslint-disable eqeqeq */ + || node[attrName] != dataAttr + /* eslint-enable eqeqeq */ + ) { node[attrName] = dataAttr } } catch (e) { @@ -1119,8 +1125,11 @@ if (e.message.indexOf("Invalid argument") < 0) throw e } } else if (attrName === "value" && tag === "input" && - node.value !== dataAttr) { - // #348 dataAttr may not be a string, so use loose comparison + /* eslint-disable eqeqeq */ + node.value != dataAttr) { + // #348 dataAttr may not be a string, + // so use loose comparison + /* eslint-enable eqeqeq */ node.value = dataAttr } }