Показать сообщение отдельно
  #28 (permalink)  
Старый 08.07.2012, 00:28
Аспирант
Отправить личное сообщение для neWjs Посмотреть профиль Найти все сообщения от neWjs
 
Регистрация: 27.05.2012
Сообщений: 48

да вы правы , с проверкой я переборщил=)
убрал , но теперь вообще какой то бред функция не вызывается (хотя вызов есть) setTimeout(s_rch,0); (я переименовал ее на s_rch)
var next_, search_, inp_s, inp_bt, prev_val;
	
	 next_ = document.body.firstChild;
	 inp_s = document.getElementById("search");  
	 inp_bt = document.getElementById("find_s"); 
	 
	    function cl (){
			  search_ = inp_s.value;
			alert(inp_s.value);
		   if(inp_s.value_ === prev_val || inp_s.value == '')return;
		     
			setTimeout(return_back,0);
		     setTimeout(s_rch,0);
		
			prev_val = search_;
			  } 
			 
		   
		  function s_rch(){
		 alert(next_);
		 function search_condition(next){
		    
			 var n_type = next.nodeType;	 
			   var tag = next.tagName;
			  
			  if(tag =='SCRIPT'|| tag == 'STYLE'
			  || tag =="IMG" || tag == 'BR'
			   || tag =="INPUT" ) return false;
			     return true;
			 }
			 
			
			 var i = 0;
		   (function closers(){
			 
			 if(search_condition(next_)){
			 
			 var reg = new RegExp(search_,"ig");  
			
			next_.innerHTML = next_.innerHTML.replace(reg, function(fin){
			i++;	
			return '<span name="'+i+'" class = "finded">'+fin+"</span>";
			});
			 }
		 
		 next_ = next_.nextSibling;
		 if(next_ !== null){
			 setTimeout(closers);
		} else {
			next_ = document.body.firstChild;
		     i = 0;
		}
	
		  }());
		
		   
		 	};
	
	function return_back (){
		
		var finded_el = document.getElementsByClassName("finded");
		  
		  var el, text,el_parent; 
		for(var i = finded_el.length;i--;){
			
			el = finded_el[i];
			
			 el_parent = el.parentNode;
			  text = el.innerHTML;
			
			el.insertAdjacentHTML("afterEnd",text);
			  el_parent.removeChild(el);
			}
		}
Ответить с цитированием