Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.07.2011, 20:24
Новичок на форуме
Отправить личное сообщение для Shu_Shu Посмотреть профиль Найти все сообщения от Shu_Shu
 
Регистрация: 31.07.2011
Сообщений: 2

поиск текста в div'e
доброго времени суток
Нужно искать и пдосвечивать текст в div элементе, есть такая функция:
function FindNext () {
            var str = document.getElementById ("findField").value;
            if (str == "") {
                alert ("Please enter some text to search!");
                return;
            }
            var found = false;
                found = window.find (str);
                if (!found) {
                    alert ("The following text was not found:\n" + str);
                }
        }


и разметка:
<input id="findField" type="text"/>
<button onclick="FindNext ();">Find!</button>
.....
.....
<div id="document">
......
</div>

Как не трудно догадаться, предполагается, что текст ищется на всей странице. И меня даже это устраивало бы, но метод find находит текст только в поле ввода из <input>. Однако, если переставить местами <input> и <div> все работает корректно, но это, к сожалению, неприемлемо. В идеале, нужно чтобы текст искался только в диве.
Нужна поддержка только webkit, всякие createtextrange не работают, да и не должны.
Ответить с цитированием
  #2 (permalink)  
Старый 01.08.2011, 23:36
Новичок на форуме
Отправить личное сообщение для Shu_Shu Посмотреть профиль Найти все сообщения от Shu_Shu
 
Регистрация: 31.07.2011
Сообщений: 2

Раз никто не знает, выкладываю свое решение, может кому пригодится. Пришлось изобрести такой костыль:
function findText() {
	var obj = window.document.getElementById("findField")
	var textToFind = obj.value
	if (textToFind == "") {
		alert("Please, input text")
		return
	}
	document.getElementById("document").innerHTML = 
	document.getElementById("document").innerHTML.
	replace(eval("/"+textToFind+"/g"),"<span style='background-color: #ffdb58'>"+textToFind+"</span>")

	var obj = window.document.getElementById("findField")
	obj.value = textToFind
}
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Живой поиск. Не работает при вставке текста мышкой formus Общие вопросы Javascript 4 13.06.2011 21:50
Поиск текста на странице setRange quazare Firefox/Mozilla 0 07.04.2011 21:09
Поиск текста в блоке со скроллингом lukingnu Элементы интерфейса 0 05.08.2010 21:54
Поиск текста в исходном коде Avalanche Firefox/Mozilla 6 09.07.2010 17:31
Поиск текста на странице derwish Opera, Safari и др. 5 25.09.2009 12:13