Avatar billede jemt Nybegynder
16. april 2001 - 10:42 Der er 8 kommentarer og
1 løsning

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&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
16. april 2001 - 13:28 #1
Arh - Hvis i ikke lige han hitte ud af det, gider i så ikke sige det? Eller bare skrive et eller andet så jeg ved, at det da i det mindste bliver læst af noget. Jeg skal helst bruge det her inden i aften...

Takker :o)
Avatar billede jakoba Nybegynder
16. april 2001 - 16:16 #2
Det ser ud til at nogen på et tidspunkt har udvidet scriptet til også at søge i titlen, men gjort det klumset så der kom dubletter i resultatlisten.

Så jeg har skrevet lidt om:

<HTML>
<HEAD>
 
<!-- Minus AutoDato -->
  <TITLE>S&oslash;gemaskine</TITLE>
<META NAME=\"Generator\" CONTENT=\"Stone\'s WebWriter 3\">
  <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 i,j;
  for ( i=0; str.length>i; i++ )
    if ( str.charAt(i)!=\" \" && str.charAt(i)!=\"*\" ) break; // skip leading
  for ( j=str.length-1; j>=i; j-- )
    if ( str.charAt(j)!=\" \" && str.charAt(j)!=\"*\" ) break; // skip trailing
  if ( j >= i )
      str = str.substr(i,j+1-i)
  else str = \"\";
    // Dette skriver til textboksen (Her må ikke rettes!!!!)
  document.searchForm.search_name.value=str;
  return document.searchForm.search_name.value;
}; //end compress( string ) -> string

function checkField() {
  if ( compress(document.searchForm.search_name.value) != \'\' ) {
    find(document.searchForm, indexedPage);
    return true
  } else { // Hvis brugeren ikke har skrevet noget
          // Skriv din alert boks besked her
    alert(\"Venligst indtast søgeord\");
    document.searchForm.search_name.focus();
    return false
  }
}; //end checkField()

function makeArray(n) { // Fra IE4 kunne Explorer også lave standard arrays
                            // så denne bruges ikke.
  this.length = n;
  for (i = 1; i <= n; i++)
    this[i] = \"\";
}; //end makeArray( antal )

function Index (url, titel, beskriv, keywds) {  // skaber eet element af typen Index
  this.link = url;                // URL
  this.keywords = new Array ();
  this.keywords[0] = titel;      // titel
  this.keywords[1] = beskriv      // beskrivelse
  for (var i = 3; Index.arguments.length>i; i++ ) { // alle nøgleordene
    this.keywords[i-1] = Index.arguments[i];
  };
}; //end Index ( string, string, string, string ... )

//Her skal du skrive præcist hvor mange indexed pages der er f.eks 21
//                            vvv
var indexedPage = new Array( );
// lav din egen indexedPage[12] eller andet som her
// Som her: indexedPage[i] = new Index(\"URL\",\"Titel\",\"Beskrivelse\",
//                                    \"Nøgleord 1\", \"Nøgleord 2\",osv\");
// Der skal mindst være et af det hele før det virker
// Her er min gamle søgemaskines index
//
indexedPage[0]=new Index( \"http://www.m-m.dk\"
                        ,\"bandet Musikkk\"
                        ,\"Dette er en fed side med bandet Musikkk - \"
                          +\"Det er faktisk et af de bedste bands i verden - Synes nogle\"
                        ,\"Musik\");
indexedPage[1]=new Index( \"http://www.jubii.dk\"
                        ,\"Bandet Kashmir\"
                        ,\"Dette er en fed side med bandet kashmir - \"
                          +\"Det er faktisk et af de seje\"
                        ,\"Musik\");
indexedPage[2]=new Index( \"http://www.av.com\"
                        ,\"bandet kashmir!(2)\"
                        ,\"Dette er en fed side med bandet kashmir!\"
                        ,\"Musik\");
indexedPage[3]=new Index( \"http://www.cybercity.dk\"
                        ,\"bandet kashmir!(3)\"
                        ,\"Dette er en fed side med bandet kashmir!\"
                        ,\"Musik\"
                        ,\"test1\");

function find(form,indexedPage) { // selve søgningen
var key;
var find_word = form.search_name.value;
var tmp_find_word = find_word.toUpperCase();
var match = false;
var fundne = new Array();
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 i=n=j=0;
for ( i = 0; indexedPage.length > i; i++) {
  for ( n = 0; indexedPage[i].keywords.length>n; n++ ) {
  key = indexedPage[i].keywords[n].toUpperCase();
  if (  key.indexOf(tmp_find_word) != -1 ) {
    match = true;
    fundne[j++] = i;
    n = indexedPage[i].keywords.length; // bryd ud af for-n løkken
  };
  }
}; //end fori
for (var i=0; fundne.length>i; i++ ) {
    idx = indexedPage[fundne[i]];
    resultTwo += \" <TR><TD valign=top align=right><i>\" + j + \". </i> \"
              + PointerPicture +\"</TD>\\n\"
              + \" <TD><FONT FACE=\'Arial\' SIZE=-1>\\n\"
              + \" <b>Nøgleord:</b>\";
    for ( j=2; idx.keywords.length>j; j++ )
      resultTwo += \" \"+idx.keywords[j];
    resultTwo += \"<br>\\n\"
              + \" <b>Titel:</b> \" +idx.keywords[0] +\"<br>\\n\"
              + \" <b>Beskrivelse:</b> \" +idx.keywords[1] +\"<br>\\n\"
              + \" <b>URL:</b> <A HREF=\" +idx.link +\" target=\'_top\'>\"
              + idx.link +\"</A></FONT><HR>\\n\"
              + \" </TD></TR>\\n\";
}; //for i
N_found = fundne.length;

resultOne += \"<HTML><HEAD><TITLE>Resultater for \" + find_word
            + \"</TITLE></HEAD>\"
            + ResultBody +\"\\n\"
            + \"<CENTER><FONT FACE=\'Arial\' SIZE=+2>Søgeresultater for <B>\"
            + find_word + \"</B></FONT><br>\\n\";

       
if (match) {  // hvis et ord passer
  resultOne += \"<FONT FACE=\'Arial\' SIZE=1><B>\" +N_found +\"</B> \"
              + ((N_found==1)?\"matchende resultat\":\"resultater der matchede\")
              + \" er fundet</FONT><br><br>\\n\";
}
else {        // HVIS DER IKKE VAR ET ORD DER MATCHEDE...
  resultThr += \"<TR><TD><FONT FACE=\'Arial\' SIZE=-1>\"
        + \"Beklager, intet passede til søgeordet <B>\" + find_word + \"</B><br>\"
        + \"Prøv venligst igen, eller tjek for tastefejl og lign.</FONT></TD></TR>\\n\";
}; //endif
resultThr += \" </TABLE></TD></TR>\\n\"
          + \"</TABLE></CENTER>\\n</BODY></HTML>\\n\";

// Denne del er blevet ændret fra den originale
resultOne += \"<TABLE border=1 CELLSPACING=\'0\' CELLPADDING=\'0\' WIDTH=\'400\'><TR><TD>\\n\"
            + \" <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();
}; //end find( form object, soege array )

// 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>

mvh JakobA

PS: det er svært at skrive \"det kan vi ikke hitte ud af\" for så taler man jo på alles vegne. Gov spørgsmål en dagstid eller to før du giver op.
Avatar billede jemt Nybegynder
17. april 2001 - 15:23 #3
Hej Igen, JakobA :o)
Scriptet virker nogenlunde, men du har lavet et rimeligt alvorligt Bug, som jeg ikke bryder mig ret meget om :o/

Når man tilføjer mere end 1 søgeord, så går det galt.. Lad os prøve med den her:

indexedPage[0]=new Index( \"http://www.superbrugsen.dk\"
                        ,\"SuperBrugsen - Dit online shopping system!\"
                        ,\"Køb dine vare på nettet. Vi levere direkte til døren inden for en radius af 20 km.\"
                        ,\"mad\"
                        ,\"dagligvare\"
                        ,\"mælk\"
                        ,\"sodavand\"
                        ,\"pizza\");

Som du kan se, så er der 5 søgeord:
,\"mad\"
,\"dagligvare\"
,\"mælk\"
,\"sodavand\"
,\"pizza\");
Hvis man søge på fx. mad, så kommer den sadvanlige smøre:

\"der er så og så mange resultater, bla. bla...)
og se så her. I punktet \"Nøgleord står pludselig ALLE nøgleordene! Det skal de ikke!
KUN det ord der er blevet søgt på...

Gider du ikke lige rette det?

Nøgleord: mad dagligvare mælk sodavand pizza
Titel: Bandet Kashmir
Beskrivelse: Dette er en fed side med bandet kashmir - Det er faktisk et af de seje
URL: http://www.jubii.dk


På forhånd tak :o)

Avatar billede jakoba Nybegynder
22. april 2001 - 20:38 #4
Sorry, overså du havde spurgt vider.

Det er ikke umiddelbart nogen svær rettelse at lave, men først vil jeg godt lige være sikker på hvad du ønsker.

er det korrekt at:

1) Titel og Beskrivelse skal altid udskrives, også selvom de ikke indeholder det ord der blev søgt efter. ?

2) Hvis søgeordet blev fundet iblandt nøgleordene skal kun det nøgle ord udskrives. ?

3) Hvis søgeordet ikke blev fundet blandt nøgleordene skal der stå \"Nøgleord:\" uden noget efter. ?

4) Hvis søgeordet findes i flere af nøgleordene skal alle nøgleord der passer udskrives. (eg: søgning på \"va\" firnder både \"dagligvarer\" og \"sodavand\"). ?

mvh JakobA
Avatar billede jemt Nybegynder
22. april 2001 - 20:53 #5
Well, det skal bare fungere som det normalt gjorde.. Dog syntes jeg det var fint, at der ikke kommer flere ens resultater!

1) Det her fattede jeg ikke rigtig. Kan du forklare det på en anden måde?
Well, Jeg har måske fattet en smule. hvis brugeren søger på \"OST\" og det findes i en beskrivelse, men ikke som nøgleord, så skal der i resultat stå følgende:
Nøgleord: ost
Titel: Sidens titel
Beskrivelse: Dejlige side om oste.
URL: www.oste.dk

Noget i den retning !

2) Jeg vil have, at der i punktet \"nøgleord\" bliver vist det man _selv_ har søgt på!
Og hvis du så kunne omdøbe \"nøgleord\" til \"søgeord\" så ville det være fint

3)Det er vist det samme som 2\'eren...
Det skal stå det, som brugeren har søgt på..

4)igen, der skal kun stå det, som brugeren har søgt på

(Tror du ikke det er klogest? Hvis du har bedre ideer til, hvordan scriptet skal virke, så kom bare med ideer !  :o)
Tak fordi du tager dig tid til mig :o)
Avatar billede jakoba Nybegynder
22. april 2001 - 21:02 #6
Nu tror jeg jeg fatter det.

Hvis jeg søger på \"va\" så søgeren finder både dagligvarer og sodavand, så skal der simpelthen stå:

Søgeord: va
Titel: Sidens titel
Beskrivelse: Dejlige side om oste.
URL: www.oste.dk


<HTML>
<HEAD>

<!-- Minus AutoDato -->
  <TITLE>S&oslash;gemaskine</TITLE>
<META NAME=\"Generator\" CONTENT=\"Stone\'s WebWriter 3\">
  <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 i,j;
  for ( i=0; str.length>i; i++ )
    if ( str.charAt(i)!=\" \" && str.charAt(i)!=\"*\" ) break; // skip leading
  for ( j=str.length-1; j>=i; j-- )
    if ( str.charAt(j)!=\" \" && str.charAt(j)!=\"*\" ) break; // skip trailing
  if ( j >= i )
      str = str.substr(i,j+1-i)
  else str = \"\";
    // Dette skriver til textboksen (Her må ikke rettes!!!!)
  document.searchForm.search_name.value=str;
  return document.searchForm.search_name.value;
}; //end compress( string ) -> string

function checkField() {
  if ( compress(document.searchForm.search_name.value) != \'\' ) {
    find(document.searchForm, indexedPage);
    return true
  } else { // Hvis brugeren ikke har skrevet noget
          // Skriv din alert boks besked her
    alert(\"Venligst indtast søgeord\");
    document.searchForm.search_name.focus();
    return false
  }
}; //end checkField()

function makeArray(n) { // Fra IE4 kunne Explorer også lave standard arrays
                            // så denne bruges ikke.
  this.length = n;
  for (i = 1; i <= n; i++)
    this[i] = \"\";
}; //end makeArray( antal )

function Index (url, titel, beskriv, keywds) {  // skaber eet element af typen Index
  this.link = url;                // URL
  this.keywords = new Array ();
  this.keywords[0] = titel;      // titel
  this.keywords[1] = beskriv      // beskrivelse
  for (var i = 3; Index.arguments.length>i; i++ ) { // alle nøgleordene
    this.keywords[i-1] = Index.arguments[i];
  };
}; //end Index ( string, string, string, string ... )

//Her skal du skrive præcist hvor mange indexed pages der er f.eks 21
//                            vvv
var indexedPage = new Array( );
// lav din egen indexedPage[12] eller andet som her
// Som her: indexedPage[i] = new Index(\"URL\",\"Titel\",\"Beskrivelse\",
//                                    \"Nøgleord 1\", \"Nøgleord 2\",osv\");
// Der skal mindst være et af det hele før det virker
// Her er min gamle søgemaskines index
//
indexedPage[0]=new Index( \"http://www.m-m.dk\"
                        ,\"bandet Musikkk\"
                        ,\"Dette er en fed side med bandet Musikkk - \"
                          +\"Det er faktisk et af de bedste bands i verden - Synes nogle\"
                        ,\"Musik\");
indexedPage[1]=new Index( \"http://www.jubii.dk\"
                        ,\"Bandet Kashmir\"
                        ,\"Dette er en fed side med bandet kashmir - \"
                          +\"Det er faktisk et af de seje\"
                        ,\"Musik\");
indexedPage[2]=new Index( \"http://www.av.com\"
                        ,\"bandet kashmir!(2)\"
                        ,\"Dette er en fed side med bandet kashmir!\"
                        ,\"Musik\");
indexedPage[3]=new Index( \"http://www.cybercity.dk\"
                        ,\"bandet kashmir!(3)\"
                        ,\"Dette er en fed side med bandet kashmir!\"
                        ,\"Musik\"
                        ,\"test1\");

function find(form,indexedPage) { // selve søgningen
var key;
var find_word = form.search_name.value;
var tmp_find_word = find_word.toUpperCase();
var match = false;
var fundne = new Array();
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 i=n=j=0;
for ( i = 0; indexedPage.length > i; i++) {
  for ( n = 0; indexedPage[i].keywords.length>n; n++ ) {
  key = indexedPage[i].keywords[n].toUpperCase();
  if (  key.indexOf(tmp_find_word) != -1 ) {
    match = true;
    fundne[j++] = i;
    n = indexedPage[i].keywords.length; // bryd ud af for-n løkken
  };
  }
}; //end fori
for (var i=0; fundne.length>i; i++ ) {
    idx = indexedPage[fundne[i]];
    resultTwo += \" <TR><TD valign=top align=right><i>\" + j + \". </i> \"
              + PointerPicture +\"</TD>\\n\"
              + \" <TD><FONT FACE=\'Arial\' SIZE=-1>\\n\"
              + \" <b>Søgeord:</b> \" +find_word +\"<br>\\n\"
              + \" <b>Titel:</b> \" +idx.keywords[0] +\"<br>\\n\"
              + \" <b>Beskrivelse:</b> \" +idx.keywords[1] +\"<br>\\n\"
              + \" <b>URL:</b> <A HREF=\" +idx.link +\" target=\'_top\'>\"
              + idx.link +\"</A></FONT><HR>\\n\"
              + \" </TD></TR>\\n\";
}; //for i
N_found = fundne.length;

resultOne += \"<HTML><HEAD><TITLE>Resultater for \" + find_word
            + \"</TITLE></HEAD>\"
            + ResultBody +\"\\n\"
            + \"<CENTER><FONT FACE=\'Arial\' SIZE=+2>Søgeresultater for <B>\"
            + find_word + \"</B></FONT><br>\\n\";

     
if (match) {  // hvis et ord passer
  resultOne += \"<FONT FACE=\'Arial\' SIZE=1><B>\" +N_found +\"</B> \"
              + ((N_found==1)?\"matchende resultat\":\"resultater der matchede\")
              + \" er fundet</FONT><br><br>\\n\";
}
else {        // HVIS DER IKKE VAR ET ORD DER MATCHEDE...
  resultThr += \"<TR><TD><FONT FACE=\'Arial\' SIZE=-1>\"
        + \"Beklager, intet passede til søgeordet <B>\" + find_word + \"</B><br>\"
        + \"Prøv venligst igen, eller tjek for tastefejl og lign.</FONT></TD></TR>\\n\";
}; //endif
resultThr += \" </TABLE></TD></TR>\\n\"
          + \"</TABLE></CENTER>\\n</BODY></HTML>\\n\";

// Denne del er blevet ændret fra den originale
resultOne += \"<TABLE border=1 CELLSPACING=\'0\' CELLPADDING=\'0\' WIDTH=\'400\'><TR><TD>\\n\"
            + \" <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();
}; //end find( form object, soege array )

// 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>

mvh JakobA
Avatar billede jemt Nybegynder
22. april 2001 - 21:09 #7
Ja, det ser vist meget fint ud :o)
Kan jeg ikke få din e-mail adresse, hvis jeg nu har flere spørgsmål (Du skal nok få points for det hver gang du hjælper... Så sender jeg dig nemlig bare et link til det spørgsmål jeg har oprettet.. Du ser nemlig ud til at være ret hård til det her ;o)

Taak for hjælpen !
Avatar billede jakoba Nybegynder
22. april 2001 - 21:18 #8
takker.

Hvis du klikker på mit brugernavn ude i kolonnen ude tilvenstre kommer du til min brugerinfo. der står emailadresse og andet.

mvh Jakoba
Avatar billede jemt Nybegynder
22. april 2001 - 21:28 #9
oki.. Takker :o)
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