Форма для поиска по странице средсвами javascript 
		
		
		
		Очень нужен код, который бы отображал на страничке поле ввода и кнопку "Найти".  
	Нужно чтобы после ввода строки в поле ввода и нажатия на кнопку "Найти" осуществлялся поиск по текущей странице. Найденная строка должна подсвечиваться цветом. В общем замена стандартному ctrl+f Накидайте, пожалуйста.  | 
	
		
 я не знаток но  я такое делал, может не образцово но работало 
	мы имеем пполе ввода <input type="text" id="search_words">затем кнопку найти <input type="button" onclick="search()">и div где размещен текст(содержание страницы) <div id="container"> text........... </div> 
function search(){
    var words=search_words.value
    var text=document.getElementById('container').innerHTML
    var result=text.replace(words,"<span style='background-color:Red; color:White;'>"+words+"</span>");
    document.getElementById('container').innerHTML=result;
}
смысл скрипта что он найдет в тексте container'a нужное слово или несколько слов и заменит его(их) на выделенное(ые) тэгом span который и окрасит фон в красный и сделает цвет шрифта белыму меня работало  | 
	
		
 bushstas, достаточно пользователю ввести в поле поиска < или > и вся страница умрет. 
	Тут нужно последовательно обходить дерево, начиная с листьев — узлов, являющихся конечными и не имеющими дочерних. И двигаться вверх, к корню. Но и это не все решение. Для каждого элемента с дочерними узлами при обработке нужно временно "выкидывать" HTML код, оставляя только обычный текст.  | 
	
		
 B@rmaley.e><e, 
	достаточно 
function check_words(){
if (event.keyCode==60 || event.keyCode==62){event.returnValue = false}
}
// а в поле ввода добавить
<input type="text" id="search_words" onkeypress="check_words()"> и пользователь просто не сможет ввести знаки < > а если кто-то захочет вставить их копипастом то добавить в поиск еще немножко кода 
function search(){
    
    var words=search_words.value
  
    words=words.replace("<","");  // убиваем в словах поиска нежелательные символы
    words=words.replace(">","");
    var text=document.getElementById('container').innerHTML
    var result=text.replace(words,"<span style='background-color:Red; color:White;'>"+words+"</span>");
    document.getElementById('container').innerHTML=result;
}
поиск плох тем что он просто топорно-жесткий ни капли не гибкий то есть он найдет только абсолютное совпадение если слово в тексте будет с большой буквы уже все, оно останется без внимания, для этого уже нужно будет повозиться :) а еще я тут подумал что надо будет вырезать из слов поиска и слова типа table div style и все такое которые исчезнув из HTML страницы также убьют ее, это тоже геморрой но все таки можно так сделать а еще можно заблокировать ввод в поле поиска латинских букв, текст то все равно по-русски, тогда мы исключим возможность поиску находить тэги и их свойства, но тогда мы уже не сможем искать английские слова которые часто встречаются в текстах страниц путей наверно много и красиво-умных и коряво-простых  | 
	
		
 bushstas, если бы все было так просто... вводим href и страница (ссылки) снова умирает. И таких вариантов можно придумать до бесконечности. 
	 | 
	
		
 Во-первых, при использовании innerHTML создаются новые элементы, т. е. все ранее добавленные обработчики будут потеряны. Во-вторых, как уже сказал B@rmaley, в вышеприведенном варианте не учитывается ситуация когда часть искомого фрагмента содержит тег, например, ищем строку "1234" в строке "aa12<span>34</span>aa" . 
	 | 
	
		
 Сегодня понималась такая же проблемка. 
	Обсуждение и решение (как вариант) тут  | 
	
		
 CKEditor как-то ищет и подсвечивает слова, разбитые тегами :)  надо будет посмотреть, как это сделали. 
	 | 
	
		
 ни кто не знает, а есть ли какой нибудь плагин для этой задачи? Третий день пытаюсь реализовать штуку, куча подводных камней всплывает. У же заколебался, а сделать нужно ... 
	 | 
	
		
 Можно сделать вот так Javascript код: 
	
<script type="text/javascript">
var lastResFind=""; // последний удачный результат
var copy_page=""; // копия страницы в ихсодном виде
function TrimStr(s) {
     s = s.replace( /^\s+/g, '');
  return s.replace( /\s+$/g, '');
}
function FindOnPage(inputId) {//ищет текст на странице, в параметр передается ID поля для ввода
  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;//перемещаем скрол к последнему найденному совпадению
 } 
</script>
Источник примера: http://adatum.ru/2013/04/01/poisk-i-...tml-stranitse/  | 
| Часовой пояс GMT +3, время: 08:22. |