Jojoxx.net logotyp

 

 

Användare ikonAnvändare
Besökare just nu: 65
Snabblänkar ikonSnabblänkar
JavaScript-arkivet
Perl
FAQ

Sök på Jojoxx.net


Sökmotor 2

Exempel


Powered by www.jojoxx.net

Kod


<style type="text/css">
.resultLink { color:blue; font-size:15px; font-weight:bold; }
.resultDescription { margin-left:10px; font-size:12px; font-style:italic; }
.resultURL { margin-left:10px; color:gray; font-size:12px; }
#searchresult { font-family: Arial; font-size:12px; }
</style>

<script type="text/javascript">
/*  The code contained in this  file is copyrighted by www.jojoxx.net
The file may be used for none commercial applications and distributed 
as long as these lines remain intact.  The file or part of it may not
be sold  or  included  in any  other commercial  application  without
agreement from the author. If you have questions or comments, contact
the author at http://www.jojoxx.net

© Copyright - www.jojoxx.net - 2004                                */

var pages=[
	{ url:"http://www.google.com", title:"Google", keywords:"sök,sökmotor,search" },
	{ url:"http://www.jojoxx.net", title:"jojoxx.net - Webprogamming made easy", keywords:"jojoxx,webb,html,javascript,css,perl",
	  description:"Information och tips inom området webbpublicering. Arkiv och guider för Perl, JavaScript och DHTML. FAQ-arkiv." }
];
var config={
	hitsPerPage:10
}
function makesearch(obj){
	if(obj){
		var t=obj.q.value.toLowerCase().split(/ /g);
		config.searchTerms=t;
		config.startAt=0;
	} else {
		t=config.searchTerms;
	}
	var result=new Array(pages.length); for(var n=0;n<result.length;n++){ result[n]=new Object(); result[n].hits=0; result[n].page=n; }
	var hits=0;
	for(var n=0;n<t.length;n++){
		if(t[n]){
			for(var p=0;p<pages.length;p++){
				if((pages[p].keywords+","+pages[p].title).toLowerCase().match(new RegExp(t[n]))){
					result[p].hits++;
				}
			}
		}
	}
	result=sortobj(result,"hits").reverse();
	var resultStr="";
	for(var n=0;n<result.length;n++){
		if(result[n].hits>=1){ // >=t.length only shows all search words hits
			hits++;
			if(hits>config.startAt && hits<=config.startAt+config.hitsPerPage){
				var i=result[n].page;
				var title=(pages[i].title)?pages[i].title:pages[i].url;
				resultStr+=hits+' <a class="resultLink" href="'+pages[i].url+'">'+title+'</a><br/>';
				if(pages[i].description){ resultStr+='<div class="resultDescription">'+pages[i].description+'</div>'; }
				resultStr+='<div class="resultURL">'+pages[i].url+'</div>';
			}
		}
	}
	if(hits==0){
		resultStr=document.getElementById("searchresult").innerHTML="Din sökning gav tyvärr inga träffar.";
	} else {
		resultStr="<p>Sökningen gav "+hits+" träffar, visar "+(config.startAt+1)+" till "+(Math.min(config.startAt+config.hitsPerPage,hits))+".</p><p>"+resultStr+"</p>";
		if(hits>config.hitsPerPage){
			resultStr+="Resultatsida: ";
			resultStr+=(config.startAt>0)?'<a href="#" onclick="config.startAt='+(config.startAt-config.hitsPerPage)+'; return makesearch();"><<</a> ':'<< ';
			resultStr+=(config.startAt+config.hitsPerPage<hits)?'<a href="#" onclick="config.startAt='+(config.startAt+config.hitsPerPage)+'; return makesearch();">>></a> ':'>> ';
		}
	}
	document.getElementById("searchresult").innerHTML=resultStr;
	return false;
}
function sortobj(obj,prop){
	var a=[];
	if(prop){
		for(var i in obj){ a[a.length]=[i,obj[i][prop]]; }
		a=a.sort(function(a,b){ return ((a[1]<b[1])?-1:((a[1]>b[1])?1:0)); } )
	} else {
		for(var i in obj){ a[a.length]=[i]; }
		a=a.sort(function(a,b){ return ((a[0]<b[0])?-1:((a[0]>b[0])?1:0)); } )
	}
	var ret=(obj.length)?new Array(obj.length):{};
	for(var i in a){ ret[a[i][0]]=obj[a[i][0]]; }
	return ret;
}
</script>
<script type="text/javascript" src="search_db.js"></script>
<form onsubmit="return makesearch(this)">
<input type="text" name="q" value="" style="height:18px; background-color:rgb(240,240,240); border:solid black 1px; border-bottom:solid rgb(128,128,128) 1px; border-right:solid rgb(128,128,128) 1px;"> <input type="submit" value="Sök" style="height:18px; width: 50px; background-color:rgb(200,200,200); border:solid black 1px; border-top:solid rgb(128,128,128) 1px; border-left:solid rgb(128,128,128) 1px;">
</form>
<div id="searchresult"></div>
<hr />
Powered by <a href="http://www.jojoxx.net" style="color:rgb(128,128,128); text-decoration:none; font-weight:bold;">www.jojoxx.net</a>

Kommentar

Lägg till sökbara sidor i arrayen pages. Varje sida är ett objekt med följande obligatoriska egenskaper:

  • URL - http-adress till sidan i fråga.
  • keywords - sökbara termer (separeras med komma-tecken).
Du kan även använda följande valfria egenskaper för att förfina sökningen.
  • title - rubrik på sidan.
  • description - en kort beskrivning av sidan.

,