4

私の以前の質問は、同じクラッシュに関するものでしたが、 contenteditable 要素 (前の質問) でした。先に進むと、テキストエリアでも同じことが起こることがわかりました。私の例(JSBin)では、次のような状況をシミュレートする必要があります。そのテキストエリアに2行を入力し、カーソルをテキストの途中に移動してEnterキーを押すと、ページがクラッシュします。ページのクラッシュにつながる複雑なイベントのようです。また、このクラッシュは、JSBin、フィドルなどだけでなく、どこでも似ています。

JSビン

HTML:

<textarea id="textarea"></textarea>

JS:

console.log("ready");
var textarea = document.getElementById("textarea"), overflowOnce = true;/* , savedText; */

console.log(textarea);

textarea.addEventListener("overflowchanged", function() {
  if (overflowOnce) {
    console.log("overflowchanged");
    /* console.log("savedText " + savedText); */
    /* console.log("current text: " + textarea.value);*/
    textarea.value = "blabla"; 
    overflowOnce = false;
  }
  else if (!overflowOnce) overflowOnce = true;
}, false);


textarea.onkeypress = function (e) {
  console.log("press " + String.fromCharCode(e.keyCode));
  /* savedText = textarea.value;
  console.log(savedText); */
};
4

1 に答える 1

4

理由はわかりませんが、textarea.value = "blabla";これに変更するsetTimeout(function(){textarea.value = "blabla";},1);とクラッシュが止まります。

于 2013-11-08T14:40:39.260 に答える