поиск текста в 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 не работают, да и не должны. |
Раз никто не знает, выкладываю свое решение, может кому пригодится. Пришлось изобрести такой костыль:
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
}
|
| Часовой пояс GMT +3, время: 17:14. |