Это код (теперь заполнен):
HTML:
<code>
<div id="content" contentEditable="true" onkeyup="highlight(this)">This is some area to type.</div>
Javascript:
function highlight(elem){
// store cursor position
var cursorPos=document.selection.createRange().duplicate();
var clickx = cursorPos.getBoundingClientRect().left;
var clicky = cursorPos.getBoundingClientRect().top;
// copy contents of div
var content = elem.innerHTML;
var replaceStart = '';
var replaceEnd = '';
// only replace/move cursor if any matches
// note the spacebands - this prevents duplicates
if(content.match(/ test /)) {
elem.innerHTML = content.replace(/ test /g,' '+replaceStart+'test'+replaceEnd+' ');
// reset cursor and focus
cursorPos = document.body.createTextRange();
cursorPos.moveToPoint(clickx, clicky);
cursorPos.select();
}
}
Просто работает на IE, несчастный.Любой может «настроить» этот код, чтобы работать и на FF! ...
Спасибо
Редактировать [1]:
Div Editable и More ... Подробнее
Этот код заменяет определенное слово тем же отформатированным словом ...
И курсор (курсор) всегда остается после слова, замененного!<<< "Это большое" <br>Но работает только в IE, и мне очень нравится переписывать этот код для работы в FF ... но я не могу этого сделать ... Это так сложно ...
Кто-нибудь может помочь?
Редактировать [2]: Моя проблема только с этой частью:
// reset cursor and focus
cursorPos = document.body.createTextRange();
cursorPos.moveToPoint(clickx, clicky);
cursorPos.select();
Потому что функции moveToPotion и select работают только в IE ... До тех пор это легко ... В FF есть еще один набор функций, которые делают это возможным ... Но я не знаю, как написать еще один код, который выполняеттоже самое.Ты понял?