Avatar billede kiilerich Nybegynder
25. januar 2002 - 11:26 Der er 3 kommentarer

Søgemaskiner

Der er flere udbyder på internettet der tilbyder søgemaskiner i javascript, enten som shareware eller som et betalingsprodukt. Jeg er allerede i besiddelse af en søgemaskine i javascript, se evt. www.grindstedbk.dk (er vidst nævnt i et andet spørgsmål). Men her kommer spørgsmålet. Er det muligt at lave en søgemaskine i JS, hvor resultatet af søgningen bliver i et pop-up vindue, og hvor linket til resultat bliver i det target i det foregående vindue, altså så man stadig operere med kun 2 vinduer, og linket i søgningsresultatet ikke blive
i endnu et vindue så man har 3.

mvh
kiilerich
Avatar billede tcr480 Nybegynder
25. januar 2002 - 11:34 #1
Ja, send mig scriptet, og jeg kan lave det straks.
Det handler kort sagt om at lavet en target på resultatet med window.open() og så lave linkene til window.opener.document.location.href = 'URL';

mvh

Johan
Avatar billede kiilerich Nybegynder
25. januar 2002 - 17:12 #2
her er sciptet, god fornøjelse..

<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=pilhojre.gif width=7 height=6 align=center>";
//                    Hvis intet billede er skrevet bliver boksen tom
var ResultBody = "<BODY BGCOLOR='#ffffff' TEXT='#000000' LINK='#000000'" +
                " VLINK='#000000' BACKGROUND=''>";
//                                ^^^^^^^^^^ Vælg et baggrundbillede (Ikke Nødvendigt)
var ResultBGCOLOR = "#F1F1F1"; // 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 20
//                            vvv
var indexedPage = new makeArray(22);
// 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.grindstedbk.dk","Forside","Sidste nyt","præmiespil","copyright","landkort","velkommen","gbk");
indexedPage[2]=new index("http://www.grindstedbk.dk/præmiespilhelesiden.htm","Præmiespil","søren peder westergaard","lodtrækning","udtrækning");
indexedPage[3]=new index("http://www.grindstedbk.dk/bykort.htm","Bykort","grindsted","hedehallen","lynghallen");
indexedPage[4]=new index("http://www.grindstedbk.dk/kontakt.htm","Kontakt","e-mail","adresse","telefon","kontor");
indexedPage[5]=new index("http://www.grindstedbk.dk/bestyrelsen.htm","Hvem er vi?","Marianne Kristensen","karsten westergaard hansen","marianne stensdal","erik poulsen","kjeld kaad hansen","bestyrelse","formål","kontor","p.e. kristensen","grindsted badmintonklub","gbk","kontakt","e-mail","stiftet","1952","kontoret");
indexedPage[6]=new index("http://www.grindstedbk.dk/billeder.htm","billeder","sommerlejr","fotografier");
indexedPage[7]=new index("http://www.grindstedbk.dk/sidenoms.htm","sidenomsiden","morten kiilerich kristensen","copyright","webmaster","design","layout","frontpage","menu");
indexedPage[8]=new index("http://www.grindstedbk.dk/steavner.htm","Stævner","Forza cup","sparekasse cup ungdom","sparekasse cup senior","bremer cup","priser","tilmelding","rækker");
indexedPage[9]=new index("http://www.grindstedbk.dk/newpage2.htm","Sparekasse Cup senior","tilmelding","kontigent","anmeldelse","lynghallen","hedehallen","bykort","aktiviter","spisning","haller","reglement","program","indskud","bespisning","kategorier");
indexedPage[10]=new index("http://www.grindstedbk.dk/newpage1.htm","Sparekasse Cup ungdom","tilmelding","kontigent","anmeldelse","lynghallen","hedehallen","bykort","aktiviter","spisning","haller","reglement","program","indskud","bespisning","kategorier");
indexedPage[11]=new index("http://www.grindstedbk.dk/newpage3","Forza Cup","tilmelding","kontigent","anmeldelse","lynghallen","hedehallen","bykort","aktiviter","spisning","haller","reglement","program","indskud","bespisning","kategorier");
indexedPage[12]=new index("http://www.grindstedbk.dk/bremer.htm","Sportmaster Cup","tilmelding","kontigent","anmeldelse","lynghallen","hedehallen","bykort","aktiviter","spisning","haller","reglement","program","indskud","bespisning","kategorier");
indexedPage[13]=new index("http://www.grindstedbk.dk/newpage12","træningstider","u10 p","u10d","u11","u21","u30","u40","tek25","tek50","træning","sæsonstart","trænere","hold","spillere");
indexedPage[14]=new index("http://www.grindstedbk.dk/priser.htm","priser","kontigent?","udgifter")
indexedPage[15]=new index("http://www.grindstedbk.dk/ungdomss.htm","ungdomsspillerudvalget","Marianne stensdal","kurt lauersen","Jette jacobsen","margit dePlace","inger langdal","karin jost","turnering","træning","sommerlejr","indskud","kontigent","udvalg")
indexedPage[16]=new index("http://www.grindstedbk.dk/motionss.htm","Motionsspillerudvalget","ingolf kristiansen","lilly nielsen","ole dahl","ole christensen");
indexedPage[17]=new index("http://www.grindstedbk.dk/staevneud.htm","Stævneudvalget","p.e.christensen","margit nielsen","mie hansen","erik mortensen","karsten westergaard hansen","anne juhl","bremer cup","forza cup","sparkasse cup","stævner")
indexedPage[18]=new index("http://www.grindstedbk.dk/seniorsp.htm","Seniorspillerudvalget","karsten westergaard hansen","Malene nielsen","lene bjerre","brian nicolaisen","tage Oehlenschlæger","jacob Oehlenschlæger","træningstidspunkter")
indexedPage[19]=new index("http://www.grindstedbk.dk/bladudva.htm","Bladudvalget","Karin dahl","fjerbolden","søren peder westergaard hansen","udbringning","kontor")
indexedPage[20]=new index("http://www.grindstedbk.dk/uddanels.htm","Uddannelse","poul erling christensen","p.e. christensen","uddannelse","kontor")
indexedPage[21]=new index("http://www.grindstedbk.dk/","intet resultat","abcdefghijklmnopqrstuvwyzxæøå")
indexedPage[22]=new index("http://www.grindstedbk.dk/main_sog.html","Klubanalyse","klubanalyse")
// 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 + ".  " +
                PointerPicture + "</TD>\n";
  resultTwo += " <TD><FONT FACE='Verdana' SIZE=-1>\n";
  resultTwo += " Søgeord: " + key2 + "<br>\n";
  resultTwo += " Titel: " + indexedPage[i].keywords[1] + "<br>\n";
  resultTwo += " Adresse: <A HREF=" + indexedPage[i].link + ">"
    + indexedPage[i].link + "</A></FONT><hr size='1' color='#8F0000' width='100%'>\n";
  resultTwo += " </TD></TR>\n";
  N_found = j;
  }
  }
}
// HVIS DER IKKE VAR ET ORD DER MATCHEDE...
if (!match) {
resultThr += " <TR><TD><FONT FACE='Verdana' SIZE=-1>Beklager, intet passede til søgeordet <B>" +
                find_word + "</B>\n";
resultThr += " <br><center>Venligst prøv igen eller tjek for stavefejl 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><strong><FONT FACE='verdana' SIZE=2>Søgeresultat for: <B></strong>" +
              find_word + "</B></FONT><br>\n";
if (match)
if (N_found == 1) resultOne += "<FONT FACE='Verdana' SIZE=1><B>1</B> " +
                              "MATCENDE RESULTATER ER FUNDET</FONT><br><br>\n";
else resultOne += "<FONT FACE='Verdana' SIZE=1><B>" + N_found +
                  "</B> RESULTATER DER MATCHEDE ER FUNDET</FONT><br><br>\n";
resultOne += "<TABLE border=0 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.main.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>
Avatar billede sthen Nybegynder
10. februar 2002 - 18:14 #3
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