Как сделать так же, как Backspace при использовании execCommand () с редактируемым iframe? - PullRequest
1 голос
/ 21 января 2012

Я использую execCommand с javascript для вставки текста в редактируемые фреймы, например так:

element.execCommand("insertHTML",false,"some text");

Кто-нибудь знает, как вставить этот текст вместо первого символа слева от курсора?Так тот же эффект, что и нажатие на клавишу возврата перед выполнением вышеуказанного?

1 Ответ

2 голосов
/ 21 января 2012

Кажется, что нет простого способа отправить нажатия клавиш в редактируемый iframe, поэтому вам, вероятно, придется найти какой-то обходной путь. Самый простой способ сделать это - получить содержимое из iframe, манипулировать им и затем вернуть обратно в iframe.

т.д .: Выделите весь текст в iframe с помощью

var selection = element.execCommand("selectAll");

для удаления последнего символа - выделение фрагмента

selection = selection.baseNode.data.slice(0, -1)

удалить весь контент

element.execCommand("Delete")

добавить выделенный фрагмент + ваш новый текст

element.execCommand("insertHTML",false,selection);
element.execCommand("insertHTML",false,"some text");

Ссылки:

  1. http://msdn.microsoft.com/en-us/library/ie/ms533049(v=vs.85).aspx
  2. https://developer.mozilla.org/en/Rich-Text_Editing_in_Mozilla

P.S. Я очень хорошо знаком с редактируемыми объектами iframe или selection, поэтому, если у вас есть какой-либо html специальных символов в вашем тексте, это может быть намного сложнее, чем это. Также вам может понадобиться настроить его для разных браузеров.

...