<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>
JavaScript: Установление выделения вручную в документе
Необходимо выделением подсвечивать проверяемое на данный момент слово, ну и соответственно прокрутить фрейм т.о. чтобы это слово было видно.
По спецификации DOM Level 2 я нашел объект т.н. Range object .
С его помощью можно установить выделение произвольного текстового фрагмента используя методы setStart() и setEnd().
Но вот какая ерунда, эти методы работают в FF, Opera, но [COLOR="Red"]неработают в IE[/COLOR]
В IE есть объект document.selection.createRange() он же document.body.createTextRange().
Они позволяют обратиться к выделенному участку, но КАК ВЫДЕЛИТЬ участок текста программно,из скрипта???? Возможно ли вообще это сделать?:confused:
Народ, если кто уже сталкивался с подобной проблемой - подскажите. Сроки поджимают, а этот, черт его побери, IE всю петрушку испортил ((
TIA
Посмотри в строну replace функции.
http://forum.dklab.ru/viewtopic.php?p=42586&sid=a809eb01e6ab1445d3bece99115578d5#42586[/QUOTE]
Это все интересно, благодарю за ссылку.
Но это не совсем то что мне нужно, или скорее совсем не то.
Все что мне нужно: СОЗДАТЬ ВЫДЕЛЕНИЕ ВРУЧНУЮ, ИЗ КОДА,
как, например, в следующем коде для Opera, FF:
Код:
или как в этом для 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>
<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>
Чем дальше ищу, тем больше убеждаюсь, что скорее всего это невозможно:(
У кого есть какие мнения(или сведения) на этот счет?
У тебя есть страница, на ней есть <P> внутри которого есть текст. В этом тексте есть некое слово, которые ты хочешь выделить. Так? Тогда вопрос, а как ты узнаешь, какое тебе слово нужно?
У тебя есть страница, на ней есть <P> внутри которого есть текст. В этом тексте есть некое слово, которые ты хочешь выделить. Так? Тогда вопрос, а как ты узнаешь, какое тебе слово нужно?[/QUOTE]
Какое выделять слово - решает алгоритм после проверки всех слов, но это нюансы. Не существенно откуда ты знаешь, какое слово нужно выделить, задача состоит непосредственно в выделении.
Хотя, впрочем, благодаря участнику AKS форума forum.dklab.ru,
решение было найдено (http://forum.dklab.ru/js/other/JavascriptUstanovlenieVideleniyaVruchnuyuVDokumente.html?unread=my&added=yes)