Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Поиск по странице (https://javascript.ru/forum/dom-window/43161-poisk-po-stranice.html)

salat-production 24.11.2013 22:25

Поиск по странице
 
Нашел на просторах инета такую весчь.
Хоть и не jquery, но все же.
В общем вопрос краток. Каким образом исключить поиск в textarea?

var lastResFind="";
var copy_page=""; 
function TrimStr(s) {
     s = s.replace( /^s+/g, '');
  return s.replace( /s+$/g, '');
}
function FindOnPage(inputId) {
  var obj = window.document.getElementById(inputId);
  var textToFind;
  
  if (obj) {
    textToFind = TrimStr(obj.value);
  } else {
    alert("Введенная фраза не найдена");
    return;
  }
  if (textToFind == "") {
    alert("Вы ничего не ввели");
    return;
  }
   
  if(document.body.innerHTML.indexOf(textToFind)=="-1")
  alert("Ничего не найдено, проверьте правильность ввода!");
   
  if(copy_page.length>0)
        document.body.innerHTML=copy_page;
  else copy_page=document.body.innerHTML;
 
   
  document.body.innerHTML = document.body.innerHTML.replace(eval("/name="+lastResFind+"/gi")," ");
  document.body.innerHTML = document.body.innerHTML.replace(eval("/"+textToFind+"/gi"),"<a name="+textToFind+" style='background:red'>"+textToFind+"</a>"); 
  lastResFind=textToFind; 
  window.location = '#'+textToFind;
 }


<input type="text" id="text-to-find" value=""> 
<input type="button" onclick="javascript: FindOnPage('text-to-find'); return false;" value="Искать"/>

Brutus 25.11.2013 18:56

Во-первых то, что скрипт не на jquery это плюс.

А вообще идея мне понравилась и я реализовал её в более изящном виде.

Вот возьми "beta" версию моего скрипта :) http://learn.javascript.ru/play/eFT1Bb

Плюсы в том что он не ищет слова внутри тела тегов, имеет плавную прокрутку и можно указать внутри какого элемента вести поиск


Часовой пояс GMT +3, время: 19:31.