Avatar billede jemt Nybegynder
11. april 2001 - 10:02 Der er 6 kommentarer og
1 løsning

Søgning

Hej med jer.
Jeg har lige et spørgsmål ang. det her lille script jeg har fået fingrene i. Det er et søgescript!
Mit problem er, at scriptet også søger i Titlen. Det er egentlig i orden, men hvis den så finder et søgeord derfra, så skriver den det hele med STORE <-- bogstaver.
Og det ser jo ikke ligefrem overdrever smart ud... Er der en der lige gider fortælle mig hvad jeg skal ændre for at det kommer til at se godt ud igen ?

/Jemt
Avatar billede jemt Nybegynder
11. april 2001 - 10:04 #1
Ups.. Jeg glemte koden...
Den kommer her:


<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.smartbutik.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)) +
        \"<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>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>

//

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

// Denne del fulgte ikke med den originale version

</BODY>
<!--Slut dette script-->
<!--Support: markus_drag@mail-telia.dk-->
<!--http://www.mdr.infoside.dk-->
</HTML>
Avatar billede aggie Nybegynder
11. april 2001 - 10:48 #2
du kan bruge toLowerCase metoden, således:

linje 146-149:

doc.write(resultOne.toLowerCase());
doc.write(resultTwo.toLowerCase());
doc.write(resultThr.toLowerCase());

- det skulle kunne klare det...

hvis du ikke lige gider sidde og tælle de 146 linjer kan jeg anbefale http://www.editplus.com - det er den vildeste editor :)
Avatar billede jemt Nybegynder
11. april 2001 - 10:59 #3
Tjoo, men nu skriver den alt med små bogstaver...
Det var kun resultatet den skulle skrive med småt.. Ellers virker det fint.. Men er det andet ikke muligt ?
Avatar billede aggie Nybegynder
11. april 2001 - 11:06 #4
jo, således her:

linje 104-111:

  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.toLowerCase() + \"<br>\\n\";
  resultTwo += \" Titel: \" + indexedPage[i].keywords[1].toLowerCase() + \"<br>\\n\";
  resultTwo += \" URL: <A HREF=\" + indexedPage[i].link + \" target=\'_top\'>\"
    + indexedPage[i].link.toLowerCase() + \"</A></FONT><HR>\\n\";
  resultTwo += \" </TD></TR>\\n\";

- så skriver den kun resultaterne små...
Avatar billede jemt Nybegynder
11. april 2001 - 12:24 #5
Nice.. Øhm, kan jeg tillade mig at spørge, om man så kan gøre sådan, at ordene \"Titel, Nøgleord og URL står med FED?\"
Avatar billede aggie Nybegynder
11. april 2001 - 14:55 #6
  jo igen, således her:

linje 104-111:

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

- det er bare at indsætte <b>tekst</b> omkring det der skal fremhæves :)
Avatar billede jemt Nybegynder
11. april 2001 - 21:22 #7
Takker - Du kan bare det der !  ;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