我之前的问题是关于同样的崩溃,但是在可信的元素(previous question)中。 向前发展我发现在textarea中发生了同样的事情。 在我的示例(JSBin)中,您只需模拟以下情况:在该textarea中输入2行,然后将光标移动到文本中间的某处,然后按Enter键,页面将崩溃。 似乎导致页面崩溃的事件的复杂性。此外,这种崩溃在所有地方都很相似,不仅仅是在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); */
};
答案 0 :(得分:4)
我不知道为什么,但是,如果您将textarea.value = "blabla";
更改为此setTimeout(function(){textarea.value = "blabla";},1);
,则崩溃将停止。