Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.07.2011, 16:13
Аватар для leoHex
Интересующийся
Отправить личное сообщение для leoHex Посмотреть профиль Найти все сообщения от leoHex
 
Регистрация: 17.04.2011
Сообщений: 16

Текст редактируемого дива
Доброго времени суток ув. форумчане!
Ситуация: у меня на странице редактируемый див (поле ввода для поиска), в зависимости от последнего введённого слова, в поле ниже появляются варианты поиска, при выборе одного из этих вариантов последнее слово (простой текст) меняется на ссылку... т.е. вид становится примерно такой:
1. (до)
<div ...>бла бла бла Поиск</div>

2. (после)
<div ...>бла бла бла<a href="./poisk.htm">Поиск</a></div>


и проблема в том что когда я продолжаю вводить текст в это поле он вводится не в div, уже в ссылку, что неправильно...

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

p.s. получалось выйти за пределы ссылки с помощью какого нибудь символа типа тильды или кавычки (менее заметного) после самой ссылки
заранее спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 12.07.2011, 10:51
Профессор
Отправить личное сообщение для da_ff Посмотреть профиль Найти все сообщения от da_ff
 
Регистрация: 12.05.2009
Сообщений: 317

Это код из какого-то моего проекта, который ставит курсор в конец введенного текста.
wnd - contentWindow редактируемого узла.
if (wnd.document.body.createTextRange) {
  var range = wnd.document.body.createTextRange(), textnode = wnd.document.createElement('span');

  textnode.appendChild(wnd.document.createTextNode(' '));
  var lastelement = ASC.TMTalk.dom.lastElementChild(wnd.document.body);
  (lastelement ? lastelement : wnd.document.body).appendChild(textnode);
  range.moveToElementText(textnode);
  range.select();

  range.pasteHTML('');
  range.collapse(true);
} else if (wnd.document.createRange) {
  var range = wnd.document.createRange(), textnode = wnd.document.createElement('span');

  textnode.appendChild(wnd.document.createTextNode(' '));
  wnd.document.body.insertBefore(textnode, ASC.TMTalk.dom.lastElementChild(wnd.document.body));
  range.selectNode(textnode);
  wnd.getSelection().addRange(range);
  wnd.getSelection().collapseToStart();
  wnd.document.body.removeChild(textnode);
}
Ответить с цитированием
  #3 (permalink)  
Старый 13.07.2011, 21:48
Аватар для leoHex
Интересующийся
Отправить личное сообщение для leoHex Посмотреть профиль Найти все сообщения от leoHex
 
Регистрация: 17.04.2011
Сообщений: 16

спасибо разобрался, правда, не как посоветовали.
достаточно было добавить нечно такое:
ob.innerHTML+='\xA0';


p.s. тот код для дива не идёт он только инпут=( ну всё равно спасибо
Ответить с цитированием
  #4 (permalink)  
Старый 14.07.2011, 10:38
Профессор
Отправить личное сообщение для da_ff Посмотреть профиль Найти все сообщения от da_ff
 
Регистрация: 12.05.2009
Сообщений: 317

leoHex,
он как раз для дива с contenteditable.
Ответить с цитированием
  #5 (permalink)  
Старый 19.07.2011, 22:42
Аватар для leoHex
Интересующийся
Отправить личное сообщение для leoHex Посмотреть профиль Найти все сообщения от leoHex
 
Регистрация: 17.04.2011
Сообщений: 16

кажется понял как он работает=) спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При клике ссылки, открыть DIV блок, и при клике ещё раз, закрыть его Simon Общие вопросы Javascript 59 28.05.2017 17:31
onload - не успевает? bookworm jQuery 12 13.01.2011 21:38
Вопрос: И опять про offsetLeft... sigurd Общие вопросы Javascript 11 04.10.2010 14:06
lastChild работает в IE, как тут быть? Puaris83 Firefox/Mozilla 4 17.04.2010 23:56
Вопрос по относительному позиционированию DIV XPOMOB (X)HTML/CSS 11 15.07.2009 17:02