Avatar billede jemt Nybegynder
10. april 2001 - 12:28 Der er 12 kommentarer og
1 løsning

Søgning

Jeg har sådan et lille script her, som jeg lige skal vide lidt om:

<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(5);
// 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.kashmir.dk\",\"Dette er en fed side med bandet kashmir - Det er faktisk et af de bedste bands i verden - Synes nogen! Jeg er mere til C\",\"Musik\");
indexedPage[2]=new index(\"http://www.smartbutik.dk\",\"Dette er en fed side med bandet kashmir - Det er faktisk et af de bedste bands i verden - Synes noge\",\"Musik\");
indexedPage[3]=new index(\"http://www.jubii.dk\",\"Dette er en fed side med bandet kashmir - Det er faktisk et af de seje\",\"Musik\");
indexedPage[4]=new index(\"http://www.av.com\",\"Dette er en fed side med bandet kashmir!\",\"Musik\");
indexedPage[5]=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)) +
        \"<B>\" + tmp_find_word + \"</B>\";
  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 += \" Nøgleord: \" + key2 + \"<br>\\n\";
  resultTwo += \" Titel: \" + indexedPage[i].keywords[1] + \"<br>\\n\";
  resultTwo += \" URL: <A HREF=\" + indexedPage[i].link + \" target=\'_top\'>\"
    + indexedPage[i].link + \"</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><center>Prøv venligst igen, eller tjek for tastefejl og lign.</center></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\";
resultOne += \"<TABLE border=1 CELLSPACING=\'0\' CELLPADDING=\'0\'><TR><TD>\\n\";
resultOne += \" <TABLE border=0 CELLSPACING=\'0\' CELLPADDING=\'8\' 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>

</BODY>
<!--Slut dette script-->
<!--Support: markus_drag@mail-telia.dk-->
<!--http://www.mdr.infoside.dk-->
</HTML>


Hvordan gør jeg sådan, at den tabel som bliver skabt altid har _samme_ brede?
Lige nu bestemmes breden jo af titlen!

Og hvordan gør man sådan, at der ikke kan søges i titlen? Den må KUN kunne søges i søgeordne!

På forhånd tak for hjælpen !
Avatar billede aggie Nybegynder
10. april 2001 - 15:19 #1
resultOne += \"<TABLE border=1 CELLSPACING=\'0\' CELLPADDING=\'0\'><TR><TD>\\n\";
resultOne += \" <TABLE border=0 CELLSPACING=\'0\' CELLPADDING=\'8\' BGCOLOR=\'\" +

skal laves om til

resultOne += \"<TABLE width=\"500\" border=1 CELLSPACING=\'0\' CELLPADDING=\'0\'><TR><TD>\\n\";
resultOne += \" <TABLE width=\"500\" border=0 CELLSPACING=\'0\' CELLPADDING=\'8\' BGCOLOR=\'\" +

eller hvor bred du nu vil have den...
Avatar billede jemt Nybegynder
10. april 2001 - 15:29 #2
Takker - Jeg prøver den snarest.. Jeg er lige midt i noget andet ;o)
Avatar billede jemt Nybegynder
10. april 2001 - 15:39 #3
Aggie: Beklager, men det virker altså ikke...
Avatar billede jemt Nybegynder
10. april 2001 - 16:42 #4
Jeg kunne også godt tænke mig at vide, om det er muligt at få nogle udvalgte søgeord til at stå med FED (Ligesom man kan købe sig til i Jubii)
Avatar billede aggie Nybegynder
11. april 2001 - 08:10 #5
Ok, her er en version som virkede fint da jeg testede den? - har i øvrigt sat linjen

    document.forms.searchForm.search_name.focus();

ind - så søgeboksen starter med at være skriveklar...

Hvis den her ik virker for dig, så vil jeg gerne høre hvad browser du bruger?
Avatar billede aggie Nybegynder
11. april 2001 - 08:11 #6
Hehe - glemte at paste den :))

----------------------------------------------------------------

<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(5);
// 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.smartbutik.dk\",\"Dette er en fed side med bandet kashmir - 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)) +
        \"<B>\" + tmp_find_word + \"</B>\";
  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 += \" Nøgleord: \" + key2 + \"<br>\\n\";
  resultTwo += \" Titel: \" + indexedPage[i].keywords[1] + \"<br>\\n\";
  resultTwo += \" URL: <A HREF=\" + indexedPage[i].link + \" target=\'_top\'>\"
    + indexedPage[i].link + \"</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><center>Prøv venligst igen, eller tjek for tastefejl og lign.</center></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\";
// HER ER DE TO LINJER JEG LAVEDE OM...
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>
<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>
<!--Slut dette script-->
<!--Support: markus_drag@mail-telia.dk-->
<!--http://www.mdr.infoside.dk-->
</HTML>
Avatar billede jemt Nybegynder
11. april 2001 - 08:37 #7
Kan du ikke lige lave en HELT nøjagtig liste over hvad du har ændret ?
Jeg kan se, at der også mangler en søgestreng...
Det er muligvis bare noget du har fjernet ved en fejl, eller mig der husker forkert, men jeg ville blive glad for en total liste...
Avatar billede jemt Nybegynder
11. april 2001 - 09:23 #8
Hej igen, Aggie ;o)
Jo, det virker fint.. Mange tak for det.. Jeg vil bare bede dig om én lille bitte tjeneste mere.. Ok ? Det der med listen over ting som er ændret kan du bare lade være.. Jeg har fundet ud af det... Nej, det jeg gerne vil have dig til er vist ret enkelt for sådan en som dig ;o)
Hvis man skriver et ord, som ikke findes i databasen, så får man den der:
\"Beklager, intet passede til søgeordet ting og sager
Prøv venligst igen, eller tjek for tastefejl og lign\"
Mit problem er, at det øverste \"Beklager, intet passede til søgeordet ting og sager\" står rigtigt, nemlig ude til venstre, men det andet står centreret.. Jeg _har_ prøvet at fjerne <center> og </center> men det virker alligevel ikke. Så ved du hvordan jeg får det til at stå til venstre - Ligesom resten ?

Forresten, så bruger jeg IE 5.5 :)

Avatar billede aggie Nybegynder
11. april 2001 - 09:32 #9
hmm, hvis jeg fjerner <center> og </center>, så virker det fint?

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\";
}

ellers må du jo lige råbe op igen :)
Avatar billede jemt Nybegynder
11. april 2001 - 09:39 #10
Hm, skumment, men nu virker det, hehe...
Mange tak for din uvurderlige hjælp.. Ku\' ikke ha\' gjort det uden dig :-))
Avatar billede aggie Nybegynder
11. april 2001 - 09:42 #11
np :)
Avatar billede jemt Nybegynder
11. april 2001 - 10:04 #12
Jeg har forresten oprettet et nyt spørgsmål ang. det her:
http://www.eksperten.dk/spm/63772
Avatar billede jemt Nybegynder
14. april 2001 - 21:09 #13
Hej Aggie :o)
Så er der et nyt spørgsmål til dig og alle andre :-)
http://www.eksperten.dk/spm/64560
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