4

我之前的问题是关于同样的崩溃,但是在 contenteditable 元素中(之前的问题)。展望未来,我发现在 textarea 中也发生了同样的事情。在我的示例(JSBin)中,您只需要模拟如下情况:您在该文本区域中输入 2 行,然后将光标移动到文本中间的某个位置,然后按 Enter 键,页面将崩溃。这似乎是导致页面崩溃的复杂事件。此外,这种崩溃不仅在 JSBin、fiddle 或其他地方都很相似。

JSBin

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 回答