Results 1 to 3 of 3

Thread: Search script

  1. #1
    Join Date
    Apr 2011
    Posts
    23
    Thanks
    13
    Thanked 0 Times in 0 Posts

    Default Search script

    Hi.

    So I have a search script which fetches all of the links from my sites. To see what I mean: http://netti-tv.net/wotlol.php ( language is Finnish ) Just type "uutiset" etc. in the "haku" (search) box.

    It works just like it should, but there are some words I don't want it to it list in the "result page". These words are: "unohdin salasanani" and "rekisteröidy". So could someone please modify the code so that you can make exceptions to which words it doesn't fetch?

    Javascript code:
    Code:
    /*Simple search v1.1 beta
    
    ChangeLog:
    1.1: Korjattiin ongelma jonka vuokis linkit eivät toimineet, korjaus tapahtui lisäämällä 250ms viive valikon piilottamiseen
    */
    
    //Tämä lisää hakukentän ja säilön hakutuloksille	
    
    function initSearch()
    {
    	document.writeln("<form id=\"searchForm\">");
    	document.writeln("Haku<br /><input type=\"text\" id=\"searchText\" onkeyup=\"search()\" onfocus=\"showResults()\" onblur=\"setTimeout('hideResults()',250);\" autocomplete=\"off\" />");
    	document.writeln("<div id=\"searchResults\"></div></form>");
    }
    
    //Hakee sivulta löytyvistä linkeistä hakusanaa vastaavia linkkejä. Kirjainkoolla ei ole väliä
    function search()
    {
    	var searchStr=document.getElementById("searchText").value.toLowerCase();
    	var found="";
    	document.getElementById("searchResults").innerHTML=" ";
    	if(searchStr!="")
    	{
    		//Käydään sivulta löytyvät linkit läpi
    		for(i=0;i<document.links.length;i++)
    		{
    			link=document.links[i];
    			//Lisätään löydettyihin jos vastaava löytyy, kyseessä on a-tagi ja sisältää vain tekstiä
    			if(link.innerHTML.toLowerCase().indexOf(searchStr)!=-1 && link.tagName=="A" && link.firstChild.nodeType==3)
    				found+="<a href=\""+link.href+"\" target=\"_blank\">"+link.innerHTML+"</a>";
    				
    		}
    		if(found.length>0)
    		{
    			document.getElementById("searchResults").innerHTML=found;
    			showResults();
    		}
    		else
    		{
    			hideResults();
    		}
    		
    	}
    }
    function hideResults()
    {
    	document.getElementById("searchResults").style.visibility="hidden";
    }
    function showResults()
    {
    	document.getElementById("searchResults").style.visibility="visible";
    }
    I'm sorry for my bad English, but I hope someone understand what i'm after. This would mean a lot for me if someone could modify the code for me...

  2. #2
    Join Date
    Dec 2008
    Location
    Portsmouth, UK
    Posts
    1,891
    Thanks
    2
    Thanked 441 Times in 435 Posts

    Default

    Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    
    <head>
      <title></title>
    </head>
    
    <body>
    
    <div id="searchResults" ></div>
    <script type="text/javascript">
    /*<![CDATA[*/
    function initSearch()
    {
    	document.writeln("<form id=\"searchForm\">");
    	document.writeln("Haku<br /><input type=\"text\" id=\"searchText\" onkeyup=\"search()\" onfocus=\"showResults()\" onblur=\"setTimeout('hideResults()',250);\" autocomplete=\"off\" />");
    	document.writeln("<div id=\"searchResults\"></div></form>");
    }
    
    var exclude=['tom tom','joe joe'];
    
    //Hakee sivulta löytyvistä linkeistä hakusanaa vastaavia linkkejä. Kirjainkoolla ei ole väliä
    function search(){
     var obj=document.getElementById("searchResults"),searchStr=document.getElementById("searchText").value.toLowerCase(),found="",link,ok,txt,z0,i=0;
     obj.innerHTML=" ";
     if(searchStr!="")	{
      //Käydään sivulta löytyvät linkit läpi
      for(;i<document.links.length;i++){
       link=document.links[i];
       ok=true;
       txt=link.innerHTML.toLowerCase();
       for (z0=0;z0<exclude.length;z0++){
        if(txt==exclude[z0].toLowerCase() && link.firstChild.nodeType==3){
         ok=false;
        }
       }
       //Lisätään löydettyihin jos vastaava löytyy, kyseessä on a-tagi ja sisältää vain tekstiä
       if(ok&&txt.indexOf(searchStr)!=-1 && link.firstChild.nodeType==3){
       	found+="<a href=\""+link.href+"\" target=\"_blank\">"+link.innerHTML+"</a>";
       }
      }
      if(found.length>0){
       obj.innerHTML=found;
       showResults();
      }
      else {
       hideResults();
      }
     }
    }
    
    function hideResults(){
    	document.getElementById("searchResults").style.visibility="hidden";
    }
    
    function showResults(){
    	document.getElementById("searchResults").style.visibility="visible";
    }
    initSearch();
    /*]]>*/
    </script>
    
    <a href="#">**** ****</a>
    <a href="#">tom tom</a>
    <a href="#">joe joe</a>
    </body>
    
    </html>
    Vic
    God Loves You and will never love you less.
    http://www.vicsjavascripts.org/Home.htm
    If my post has been useful please donate to http://www.operationsmile.org.uk/

  3. The Following User Says Thank You to vwphillips For This Useful Post:

    X-Tream (05-31-2011)

  4. #3
    Join Date
    Apr 2011
    Posts
    23
    Thanks
    13
    Thanked 0 Times in 0 Posts

    Default

    Thank you for helping me dude! It's now working perfectly. (:

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •