Avatar billede ankersan Nybegynder
17. marts 2002 - 15:48 Der er 8 kommentarer og
1 løsning

Hjælp til rettelse af kode

Jeg har fundet denne kode på nettet. Scriptet er en lille "søgemaskine", som åbner i en popup. Jeg vil ikke desto mindre gerne have at den ikke popper up, men "bare" åbner i mit "main" vindue hvor jeg søger fra.

Håber i kan hjælpe. Jeg har travlt, derfor den lidt høje pointsats.

MsgBox=null;

function skrivMsg(text) {
    MsgBox.document.write(text);
}

function isWindow(){
    if(MsgBox!=null){
        if(!MsgBox.closed){
            MsgBox.close();
        }
    }
}

function checkDatabase() {
    var Found=false;
    var itemFound=false;
    var Item=document.forms[0].SearchForm.value.toLowerCase();
    var Str="";
    var nrFound=0;
    stats='toolbar=no,location=no,directories=no,status=no,menubar=no,'+
            'height=300,width=320,scrollbars=yes,resizable=yes';
    isWindow();
    MsgBox=window.open("","msgWindow",stats);
    MsgBox.opener=window;
    MsgBox.opener.name="opener";
    if (Item!="") {
        for(i in Keywords){
            Keyword=Keywords[i].split("|");
            itemFound=false;
            for(j in Keyword){
                if((!itemFound)&&((Keyword[j].indexOf(Item))>=0)){
                    Found=true;
                    itemFound=true;
                    nrFound++;
                    Str+=("<FONT FACE=arial SIZE=3><B>"+Descrip[i]+"</B></FONT><BR>"+
                            "<FONT FACE=arial SIZE=2>Fundet søgeord: ");
                    for(h in Keyword) {
                        if((Keyword[h].indexOf(Item))>=0){
                            Start=Keyword[h].indexOf(Item);
                            Mid=Keyword[h].indexOf(Item)+Item.length;
                            Str+=(Keyword[h].slice(0,Start));
                            Str+=("<B>"+Keyword[h].slice(Start,Mid)+"</B>");
                            Str+=(Keyword[h].substr(Mid)+" ");
                        }
                    }
                    Str+=("<BR><A HREF="+Address[i]+" TARGET=opener>"+Address[i]+"</A></FONT><P>");
                }
            }
        }
    }
    skrivMsg('<HTML><HEAD><TITLE>Søge Resultater</TITLE></HEAD><BODY>'+
                '<B><FONT FACE=arial SIZE=5>Søge Resultater</FONT></B><P>'+
                '<FONT FACE=arial SIZE=3>Søgeord: "'+Item+'"<BR>'+
                'Fandt '+nrFound+' ud af '+Keywords.length+' elementer ialt.'+
                '</FONT><HR>');
    skrivMsg(Str);
    if(!Found){
        skrivMsg('<H1><CENTER>Intet fundet</CENTER></H1>');
    }
    skrivMsg('<HR><FORM ACTION="java script:self.close()" NAME="Close">'+
                '<INPUT TYPE="button" VALUE="Luk Vinduet" ONCLICK="self.close()">'+
                '</INPUT></FORM></BODY></HTML>');
}
Avatar billede cms Nybegynder
17. marts 2002 - 16:44 #1
prøv med dette:
Resultater<br>
<div id="results"></div>

<script>
MsgBox=null;
var output = "";

function skrivMsg(text) {
    output = output + document.write(text);
}

function checkDatabase() {
    var Found=false;
    var itemFound=false;
    var Item=document.forms[0].SearchForm.value.toLowerCase();
    var Str="";
    var nrFound=0;
    stats='toolbar=no,location=no,directories=no,status=no,menubar=no,'+
            'height=300,width=320,scrollbars=yes,resizable=yes';
    isWindow();
    MsgBox=window.open("","msgWindow",stats);
    MsgBox.opener=window;
    MsgBox.opener.name="opener";
    if (Item!="") {
        for(i in Keywords){
            Keyword=Keywords[i].split("|");
            itemFound=false;
            for(j in Keyword){
                if((!itemFound)&&((Keyword[j].indexOf(Item))>=0)){
                    Found=true;
                    itemFound=true;
                    nrFound++;
                    Str+=("<FONT FACE=arial SIZE=3><B>"+Descrip[i]+"</B></FONT><BR>"+
                            "<FONT FACE=arial SIZE=2>Fundet søgeord: ");
                    for(h in Keyword) {
                        if((Keyword[h].indexOf(Item))>=0){
                            Start=Keyword[h].indexOf(Item);
                            Mid=Keyword[h].indexOf(Item)+Item.length;
                            Str+=(Keyword[h].slice(0,Start));
                            Str+=("<B>"+Keyword[h].slice(Start,Mid)+"</B>");
                            Str+=(Keyword[h].substr(Mid)+" ");
                        }
                    }
                    Str+=("<BR><A HREF="+Address[i]+" TARGET=opener>"+Address[i]+"</A></FONT><P>");
                }
            }
        }
    }
    skrivMsg('<HTML><HEAD><TITLE>Søge Resultater</TITLE></HEAD><BODY>'+
                '<B><FONT FACE=arial SIZE=5>Søge Resultater</FONT></B><P>'+
                '<FONT FACE=arial SIZE=3>Søgeord: "'+Item+'"<BR>'+
                'Fandt '+nrFound+' ud af '+Keywords.length+' elementer ialt.'+
                '</FONT><HR>');
    skrivMsg(Str);
    if(!Found){
        skrivMsg('<H1><CENTER>Intet fundet</CENTER></H1>');
    }
    skrivMsg('<HR><FORM ACTION="java script:self.close()" NAME="Close">'+
                '<INPUT TYPE="button" VALUE="Luk Vinduet" ONCLICK="self.close()">'+
                '</INPUT></FORM></BODY></HTML>');
    document.all.results.innerHTML = output;
}
</script>
Avatar billede ankersan Nybegynder
17. marts 2002 - 18:09 #2
Det virker ikke.
Så vidt jeg kan se er hele window.open og størrelses angivelsen af popuppen der også stadig.
Scriptet ligger i en fil for sig, har dette noget at skulle have sagt?

Har prøvet at kopierer den ind i min fil, med det virker heller ikke, og det vil jeg gerne undgå.
Avatar billede Slettet bruger
17. marts 2002 - 18:22 #3
Prøv følgende:

MsgBox=null;

function skrivMsg(text) {
    MsgBox.document.write(text);
}

function checkDatabase() {
    var Found=false;
    var itemFound=false;
    var Item=document.forms[0].SearchForm.value.toLowerCase();
    var Str="";
    var nrFound=0;
    MsgBox=parent.frames["main"]; //Henviser til framen "main" istedet for et nyt vindue
    if (Item!="") {
        for(i in Keywords){
            Keyword=Keywords[i].split("|");
            itemFound=false;
            for(j in Keyword){
                if((!itemFound)&&((Keyword[j].indexOf(Item))>=0)){
                    Found=true;
                    itemFound=true;
                    nrFound++;
                    Str+=("<FONT FACE=arial SIZE=3><B>"+Descrip[i]+"</B></FONT><BR>"+
                            "<FONT FACE=arial SIZE=2>Fundet søgeord: ");
                    for(h in Keyword) {
                        if((Keyword[h].indexOf(Item))>=0){
                            Start=Keyword[h].indexOf(Item);
                            Mid=Keyword[h].indexOf(Item)+Item.length;
                            Str+=(Keyword[h].slice(0,Start));
                            Str+=("<B>"+Keyword[h].slice(Start,Mid)+"</B>");
                            Str+=(Keyword[h].substr(Mid)+" ");
                        }
                    }
                    Str+=("<BR><A HREF="+Address[i]+" TARGET=minFrame>"+Address[i]+"</A></FONT><P>"); //Skift "minFrame" ud med den frame, som linket skal åbne i (lad vær med at skrive noget, hvis det skal åbne i den aktuelle side).
                }
            }
        }
    }
    skrivMsg('<HTML><HEAD><TITLE>Søge Resultater</TITLE></HEAD><BODY>'+
                '<B><FONT FACE=arial SIZE=5>Søge Resultater</FONT></B><P>'+
                '<FONT FACE=arial SIZE=3>Søgeord: "'+Item+'"<BR>'+
                'Fandt '+nrFound+' ud af '+Keywords.length+' elementer ialt.'+
                '</FONT><HR>');
    skrivMsg(Str);
    if(!Found){
        skrivMsg('<H1><CENTER>Intet fundet</CENTER></H1>');
    }
    skrivMsg('</BODY></HTML>');
Avatar billede Slettet bruger
17. marts 2002 - 18:23 #4
Jeg har skrevet en kommentar to centrale steder i koden. Se dem lige efter, før du tester!
Avatar billede ankersan Nybegynder
17. marts 2002 - 18:45 #5
Det ser ikke ud til at virke. Måske er det fordi at jeg ikke har frames som sådan, men bare mente mit aktive vindue da jeg skrev "main"??
Avatar billede ankersan Nybegynder
18. marts 2002 - 15:40 #6
Er der virkelig ikke nogen der kan hjælpe mig?
Avatar billede Slettet bruger
18. marts 2002 - 20:43 #7
Jamen så er det skam nemt nok!
Så udskifter du bare linjen:

MsgBox=parent.frames["main"];

... med:

MsgBox=self;
Avatar billede Slettet bruger
18. marts 2002 - 20:46 #8
Og slet "TARGET=minFrame" i koden.
Avatar billede ankersan Nybegynder
19. marts 2002 - 13:24 #9
phoenixv> Jeg fik det sgu' til at virke mod al forventning :o)
Tak for hjælpen. Jeg opretter endnu et spørgsmål, mht. at style den side jeg får ud. Der er 200 point hvis du kan hjælpe der også.
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