#1.
2010
Off
(1)
Участник
2011.05.03 17:05
При помощи execCommand - можно заменить одно слово на другое?
Варианты с document.getElementById( _ID_ ) и innerHTML или Text отпадают.
Я знаю такую вещь - object.document.execCommand('bold');
- но она только делает текст жирным (например, нажимаешь и пишишь жирным. Нажимаешь еще раз и пишишь уже обычным.)
А мне надо чтобы любой текст в любой позиции заменялся на тот который нужно.
Например: пишу слово var, и оно сходу заменяется на слово жирного шрифта вот так:
varНу что-то подобно подсветке синтаксиса (как в яваскрипте, пишешь слово "va" - никаких действий, пишешь "var" - меняет синтаксис на жирный и само собой цвет).
Говорю сразу у меня форма для ввода не TextArea, а div элемент с параметром contentEditable="true".
Эта вещь делает объект доступным для ввода текста с клавы. И вот там мне нужно это заделать. Я низнаю как имено.
вот пример вместо textarea:
<div contentEditable="true" style="overflow: auto;
width: 300px;
height: 100px;
border: 1px solid #bbb;">
</div>
------------------------------
Я использовал вариант для замены слова при помощи document.getElement....
ogj.innerHTML = variable;
и делал обновление каждую setTimeout(... , 100).
Но ошибка была в том что при каждом обновлении текстового поля (чтобы найти слово и заменить)
- курсор уходил с этого поля и невозможно было нажать на поле ввода
(из-за постоянного процеса обновления). Низнаю почему, но вариант неверный.
Вот мне интересно, при помощи execCommand можно это сделать? или другая функция есть?
#3.
2010
Off
(1)
Участник
2011.05.04 07:07
Щас попробую indexOf + replace. Чтобы найти все слова в тексе например ''var'' и заменить их по циклу. А потом попробую переместить курсор на то место где он последний раз остановился. Думаю если использовать просто select() - то он появится в конце (если там кода оч много - это просто смерть). Например там написано:
va object1 = ...;
var object2 = ...;
В первой строке (object1) не хватает буквы ''r''. когда я её добовляю - строkа становится такая:
var object1
и слово вар становиться жирным шрифтом. Потом курсор уходит с редактора и я пробую поместить его обратно после слова var. Иначе он появится в конце или в начале если задействовать select. Короче щас попробую.