Может ли `range.insertNode` быть отменен, используя отмену браузера, в contenteditable div?

Я работаю над contenteditable div, чтобы создать простой RichText-Editor. Одно из требований, которое у меня есть, - это возможность вставлять html chunk в позицию курсора на событие кнопки.

Я смог получить эту часть, работая нормально, используя range, selection, range.insertNode(nodeHTML) или range.pasteHTML(nodeHTML) на основе браузера. Но я не мог получить две вещи, которые в идеале я хотел бы иметь

  • Быть способным отменить вставленный node, используя отмену браузера. Почему-то браузер игнорирует выше действия.
  • Чтобы переместить курсор в конец вставленного node. Чтобы пользователь мог начать писать после

Я знаю, что могу использовать что-то из многих доступных редакторов, что делает это очень хорошо, но если я получу это, мне это не понадобится. Любая помощь или даже предложения приветствуются.

Спасибо.

Ответ 1

Ответ переписан в августе 2013 года

К сожалению, нет, хотя вещи улучшаются. Программные мутации DOM, отличные от тех, которые вызваны document.execCommand(), не входят в стек встроенного отладки браузера. Однако произошли два последних события:

Пока ситуация не улучшится, вы можете использовать document.execCommand("InsertHTML", false, "<b>Some html</b>");, но это не поддерживается в IE.