Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

JavaScript: Установление выделения вручную в документе

17K
03 августа 2006 года
=vd=
10 / / 03.08.2006
Если подробно обрисовать суть вопроса - то есть система проверки орфографии. Она выбирает все слова, сканируя DOM структуру, отправляет их в php там они проверяются через pspell и возвращается результат в виде диалогового окна наподобие wordовского для проверки орфографии.

Необходимо выделением подсвечивать проверяемое на данный момент слово, ну и соответственно прокрутить фрейм т.о. чтобы это слово было видно.

По спецификации DOM Level 2 я нашел объект т.н. Range object .
С его помощью можно установить выделение произвольного текстового фрагмента используя методы setStart() и setEnd().

Но вот какая ерунда, эти методы работают в FF, Opera, но [COLOR="Red"]неработают в IE[/COLOR]

В IE есть объект document.selection.createRange() он же document.body.createTextRange().
Они позволяют обратиться к выделенному участку, но КАК ВЫДЕЛИТЬ участок текста программно,из скрипта???? Возможно ли вообще это сделать?:confused:

Народ, если кто уже сталкивался с подобной проблемой - подскажите. Сроки поджимают, а этот, черт его побери, IE всю петрушку испортил ((

TIA
12
03 августа 2006 года
alekciy
3.0K / / 13.12.2005
Посмотри в строну replace функции.
http://forum.dklab.ru/viewtopic.php?p=42586&sid=a809eb01e6ab1445d3bece99115578d5#42586
17K
03 августа 2006 года
=vd=
10 / / 03.08.2006
[QUOTE=alekciy]Посмотри в строну replace функции.
http://forum.dklab.ru/viewtopic.php?p=42586&sid=a809eb01e6ab1445d3bece99115578d5#42586[/QUOTE]

Это все интересно, благодарю за ссылку.
Но это не совсем то что мне нужно, или скорее совсем не то.

Все что мне нужно: СОЗДАТЬ ВЫДЕЛЕНИЕ ВРУЧНУЮ, ИЗ КОДА,
как, например, в следующем коде для Opera, FF:

Код:
<p id="p1">This is sample <em>text</em> go ahead and create a <i>selection</i>
 over a portion of this paragraph.</p>
<p id="p2">Another paragraph</p>
<p id="p3">Yet another paragraph.</p>

<script type="text/javascript">
var myRange;
if (document.createRange) {
  myRange = document.createRange();
 myRange.setStart(document.getElementById('p1').firstChild,1);
myRange.setEnd(document.getElementById('p1').firstChild,10);
  alert(myRange);
  /* Now highlight using Mozilla style selections */
  mySelection = window.getSelection();
  mySelection.addRange(myRange);
 }
</script>


или как в этом для IE, но только сдесь м.б. выделенн только текст внутри textarea или input, а для обычных веток DOM не работает:(

Код:
<textarea id="ta" cols=80 rows=10>Test.</textarea>

<script language="JavaScript">
var amount = 4;
var d = document.getElementById('ta');
var oRange = d.createTextRange();
oRange.moveStart("character", 0);
oRange.moveEnd("character", amount - d.value.length);
oRange.select();
d.focus();
</script>


Чем дальше ищу, тем больше убеждаюсь, что скорее всего это невозможно:(

У кого есть какие мнения(или сведения) на этот счет?
12
03 августа 2006 года
alekciy
3.0K / / 13.12.2005
Либо ты чего-то в JS не догоняешь (или алгоритме) либо я тебя не очень понимаю. Давай по порядку.

У тебя есть страница, на ней есть <P> внутри которого есть текст. В этом тексте есть некое слово, которые ты хочешь выделить. Так? Тогда вопрос, а как ты узнаешь, какое тебе слово нужно?
17K
03 августа 2006 года
=vd=
10 / / 03.08.2006
[QUOTE=alekciy]Либо ты чего-то в JS не догоняешь (или алгоритме) либо я тебя не очень понимаю. Давай по порядку.

У тебя есть страница, на ней есть <P> внутри которого есть текст. В этом тексте есть некое слово, которые ты хочешь выделить. Так? Тогда вопрос, а как ты узнаешь, какое тебе слово нужно?[/QUOTE]

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

Хотя, впрочем, благодаря участнику AKS форума forum.dklab.ru,
решение было найдено (http://forum.dklab.ru/js/other/JavascriptUstanovlenieVideleniyaVruchnuyuVDokumente.html?unread=my&added=yes)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог