Avatar billede jemt Nybegynder
14. april 2001 - 21:08 Der er 2 kommentarer og
1 løsning

Search

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&oslash;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&oslash;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..
Avatar billede jemt Nybegynder
15. april 2001 - 16:15 #1
Juhuu? Er der slet ikke nogen der har lyst til at svare ?
Avatar billede barefoot Nybegynder
16. april 2001 - 02:14 #2
Prøv i javascript sektionen.
Avatar billede jemt Nybegynder
16. april 2001 - 10:31 #3
Oki... Lukker lige spm.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester