Ответ 1
Проблема, похоже, специфична для WebKit; Я не смог воспроизвести его в IE или Firefox. Как уже говорилось в OP, ошибка в Google Chrome:
Uncaught IndexSizeError: не удалось выполнить 'getRangeAt' в 'Selection': 0 не является допустимым индексом
Safari имеет ту же проблему, но сообщение отличается:
INDEX_SIZE_ERR: исключение DOM 1: индекс или размер был отрицательным или больше допустимого значения.
Обычно это происходит в простых редакторах WYSIWYG. Пример:
<form name="frm">
<div contenteditable="true" style="border:1px solid grey;height:8em;width:100%;">
Text inside my editor.
</div>
Click this button to insert some text into the text editor:
<button type="button" onclick="doInsert('TEST');">Insert</button>
</form>
<script>
function doInsert(text) {
var sel = window.getSelection && window.getSelection();
if (sel) {
var range = sel.getRangeAt(0); // error here
var node = document.createTextNode(text);
range.deleteContents();
range.insertNode(node);
}
}
</script>