Søgning
Hej med jer..Jeg har lige et spørgsmål ang. det her lille søge-script.
Men hvad med at vi lige tager koden først.
Den ser sådan her ud:
<HTML>
<HEAD>
<META NAME=\"GENERATOR\" CONTENT=\"Microsoft FrontPage 4.0\">
<TITLE>Søgemaskine</TITLE>
<SCRIPT LANGUAGE=\"JAVASCRIPT\">
<!--
// Dette script er meget svært så derfor har jeg lavet en guide
// Følg guiden eller download denne fil i min JavaScript side
// Du kan også sende mig en mail på markus_drag@mail-telia.dk hvis du har problemer
// Det er forresten bedst at bruge frames til dette script så resultat siden vises et andet sted
// Start script fra http://www.mdr.infoside.dk
//
// Her skriver du kilden til din pil som vises ved resultat
var PointerPicture = \"<IMG SRC=billeder/pil.bmp width=26 height=20 align=top>\";
// Hvis intet billede er skrevet bliver boksen tom
var ResultBody = \"<BODY BGCOLOR=\'#ffffff\' TEXT=\'#000000\' LINK=\'#000000\'\" +
\" VLINK=\'#000000\' BACKGROUND=\'billeder/bg_blaa.bmp\'>\";
// ^^^^^^^^^^ Vælg et baggrundbillede (Ikke Nødvendigt)
var ResultBGCOLOR = \"FFFFFF\"; // Baggrundsfarven i tabellen i resultater
// Slut på egenskaber for den kommende resultat side
function compress(str) {
var h=str;
var leading=(h.charAt(0) == \" \" || h.charAt(0) == \"*\" );
var trailing=(h.charAt(h.length-1) == \" \" || h.charAt(h.length-1) == \"*\");
while (trailing || leading) {
if (leading) {
h=h.substring(1,h.length);
leading=(h.charAt(0) == \" \" || h.charAt(0) == \"*\" );
}
if (trailing) {
h=h.substring(0,h.length-1);
trailing=(h.charAt(h.length-1) == \" \" || h.charAt(h.length-1) == \"*\");
}
}
// Dette skriver til textboksen (Her må ikke rettes!!!!)
document.searchForm.search_name.value=h;
return document.searchForm.search_name.value;
}
function checkField() {
if ( compress(document.searchForm.search_name.value) != \'\' ) {
find(document.searchForm, indexedPage);
return true }
// Hvis brugeren ikke har skrevet noget
// ||||| Skriv din alert boks besked her
else { alert(\"Venligst indtast søgeord\");
document.searchForm.search_name.focus();
return false }
}
function makeArray(n){
this.length = n;
for (i = 1; i <= n; i++){
this[i] = \"\";
}
}
function index (link,summary,keywds) {
var argc = index.arguments.length;
var keys = argc - 2;
this.link = link;
this.keywords = new makeArray(keys);
this.keywords[1] = summary;
for(var i = 2; i <= keys+1; i++) {
this.keywords[i] = index.arguments[i];
}
}
//Her skal du skrive præcist hvor mange indexed pages der er f.eks 21
// vvv
var indexedPage = new makeArray(4);
// lav din egen indexedPage[12] eller andet som her
// Som her: indexedPage[i] = new index(\"URL\",\"Titel\",\"Nøgleord 1\",
// \"Nøgleord 2\",\"Nøglord 3 osv.\");
// Der skal mindst være et af det hele før det virker
// Her er min gamle søgemaskines index
//
indexedPage[1]=new index(\"http://www.m-m.dk\",\"Dette er en fed side med bandet Musikkk - Det er faktisk et af de bedste bands i verden - Synes noge\",\"Musik\");
indexedPage[2]=new index(\"http://www.jubii.dk\",\"Dette er en fed side med bandet kashmir - Det er faktisk et af de seje\",\"Musik\");
indexedPage[3]=new index(\"http://www.av.com\",\"Dette er en fed side med bandet kashmir!\",\"Musik\");
indexedPage[4]=new index(\"http://www.cybercity.dk\",\"Dette er en fed side med bandet kashmir!\",\"Musik\",\"test1\");
// Hvis du glemmer at skrive det rigtige antal indexedPages så bliver de frakoblet så husk det!!!
// Nu til formen
function find(form,indexedPage) {
var key;
var tmp_find_word;
var find_word = form.search_name.value;
var match = false;
var doc;
var resultOne =\'\'; //Part 1 af output
var resultTwo =\'\'; //part 2 af output
var resultThr =\'\'; //part 3 af output
var N_found = 0;
// Søg og output
var j=0;
for (var i = 1; i <= indexedPage.length; i++) {
for (var n in indexedPage[i].keywords) {
key = indexedPage[i].keywords[n].toString();
key = key.toUpperCase();
tmp_find_word = find_word.toUpperCase();
if ((key.indexOf(tmp_find_word) != -1 ||
tmp_find_word.indexOf(key) != -1) && (n != \"length\")) {
match = true;
j++;
key1 = key.substring(0,key.indexOf(tmp_find_word)) +
\"<em>\" + tmp_find_word + \"</em>\";
key2 = key1 + key.substring(key1.length-7,key.length);
resultTwo += \" <TR><TD valign=top align=right><i>\" + j + \". </i> \" +
PointerPicture + \"</TD>\\n\";
resultTwo += \" <TD><FONT FACE=\'Arial\' SIZE=-1>\\n\";
resultTwo += \" <b>Nøgleord:</b> \" + key2.toLowerCase() + \"<br>\\n\";
resultTwo += \" <b>Titel:</b> \" + indexedPage[i].keywords[1].toLowerCase() + \"<br>\\n\";
resultTwo += \" <b>URL:</b> <A HREF=\" + indexedPage[i].link + \" target=\'_top\'>\"
+ indexedPage[i].link.toLowerCase() + \"</A></FONT><HR>\\n\";
resultTwo += \" </TD></TR>\\n\";
N_found = j;
}
}
}
// HVIS DER IKKE VAR ET ORD DER MATCHEDE...
if (!match) {
resultThr += \" <TR><TD><FONT FACE=\'Arial\' SIZE=-1>Beklager, intet passede til søgeordet <B>\" + find_word + \"</B>\\n\";
resultThr += \" <br>Prøv venligst igen, eller tjek for tastefejl og lign.</FONT></TD></TR>\\n\";
}
resultThr += \" </TABLE></TD></TR>\\n\";
resultThr += \"</TABLE><BR>\\n\";
resultThr += \"</CENTER>\\n\";
resultThr += \"</BODY></HTML>\\n\";
// hvis et ord passer
resultOne += \"<HTML><HEAD><TITLE>Resultater for \" + find_word +
\"</TITLE></HEAD>\";
resultOne += ResultBody +\"\\n\";
resultOne += \"<CENTER><FONT FACE=\'Arial\' SIZE=+2>Søgeresultater for <B>\" +
find_word + \"</B></FONT><br>\\n\";
if (match)
if (N_found == 1) resultOne += \"<FONT FACE=\'Arial\' SIZE=1><B>1</B> \" +
\"matchende resultat er fundet</FONT><br><br>\\n\";
else resultOne += \"<FONT FACE=\'Arial\' SIZE=1><B>\" + N_found +
\"</B> resultater der matchede er fundet</FONT><br><br>\\n\";
// Denne del er blevet ændret fra den originale
resultOne += \"<TABLE border=1 CELLSPACING=\'0\' CELLPADDING=\'0\' WIDTH=\'400\'><TR><TD>\\n\";
resultOne += \" <TABLE border=0 CELLSPACING=\'0\' CELLPADDING=\'8\' WIDTH=\'400\' BGCOLOR=\'\" +
ResultBGCOLOR + \"\'>\\n\";
// Hvis du bruger frames?
if (parent == null || parent == self) { doc = window.document; }
else { doc = parent.hovedramme.document; }
// ^^^^
// her skrives det frame navn hvor resultat siden skal vises i
doc.open();
doc.write(resultOne);
doc.write(resultTwo);
doc.write(resultThr);
doc.close();
}
// Det var så alt her fra Markus Hjemmeside\'s Sitesearch
-->
</SCRIPT>
<base target=\"banner1\">
</HEAD>
<BODY topmargin=\"3\" bgcolor=\"#7B92CE\">
<FORM NAME=\"searchForm\" METHOD=\"GET\" onSubmit=\"return checkField()\">
<P><INPUT TYPE=\"text\" SIZE=\"15\" NAME=\"search_name\"> <INPUT NAME=\"find\"
TYPE=\"submit\" VALUE=\"Søg\"></P>
<P></FORM>
// Denne del fulgte ikke med den originale version
<SCRIPT LANGUAGE=\"JavaScript\">
// GIVER FOKUS TIL SØGEFELTET NÅR MAN STARTER - LIGEMEGET FOR SCRIPTET, MEN LÆKKERT FOR BRUGERE DER
// IKKE BRUGER MUS MEGET...
document.forms.searchForm.search_name.focus();
</SCRIPT>
</BODY>
</HTML>
Som i kan se, så er der 3 punkter i søgningen:
NøgleOrd, Titel, og URL.
Det er disse 3 ting som brugeren ser når han søger i det.. Men nu kommer jeg til det.
Jeg vil have en fjerde ting ind i scriptet, som hedder \"beskrivelse\"
Således at det ser sådan her ud:
\"Nøgleord
Titel
Beskrivelse
URL\"
Kan i klare det?
På forhånd tak..
