IE11 の element.innerHTML で非常に奇妙な動作をします。
http://pe281.s3.amazonaws.com/index.htmlでわかるように、一部のriotjs
式は評価されません。
私はそれを2つのことまで追跡しました:
- その上のユーロ記号。としてエンコードされていますが、 or€
と同じ動作をしています。これは、通貨記号の範囲内のすべての文字と、その他の範囲の一部で発生します。標準文字を削除または使用しても問題は発生しません。
-カスタムタグとテンプレートを作成する方法。基本的にはこれを行います:\u20AC
€
riotjs
var html = "{reward.amount.toLocaleString()}<span>€</span>{moment(expiracyDate).format('DD/MM/YYYY')}";
var e = document.createElement('div');
e.innerHTML = html;
結果のe
ノードでe.childNodes
、次の配列を返します。
[0]: {reward.amount.toLocaleString()}
[1]: <span>€</span>
[2]: {
[3]: moment(expiracyDate).format('DD/MM/YYYY')}
明らかに、ノード 2 と 3 は 1 つだけである必要があります。それらを分割すると、暴動が評価する式を認識しないため、問題が発生します。
しかし、それ以上の問題があります。問題は一貫しておらず、たとえば、https ://jsfiddle.net/5wg3zxk5/4/ というフィドルでは再現できません。ここでは、html 文字列が正しく解析されています。
だから私の質問は、特定の文字が element.innerHTML がその入力を解析する方法をどのように変更できるかということだと思いますか? どうすれば解決できますか?