Avatar billede emileej Nybegynder
29. marts 2001 - 16:24 Der er 41 kommentarer og
1 løsning

sel.options er ikke noget objekt...

Så er jeg her med min chat igen :)
Chatten ligger på http://eej.dk/chat , og jeg får en javascriptfejl, når jeg er inde på chatten - fejlen lydder på, at sel.options ikke er noget obejkt - i kan jo selv se efter :)

E-)mil
http://www.tdaugaard.dk/fotx/showuser.asp?user=emileej
Avatar billede emileej Nybegynder
29. marts 2001 - 16:38 #1
Nu virker mit scrollscript pludseligt heller ikke - hjælp! :(
Avatar billede olebole Juniormester
29. marts 2001 - 19:07 #2
<ole>
Jeg får ingen fejl, Emil...!?!
/mvh
</bole>
Avatar billede jakoba Nybegynder
30. marts 2001 - 00:29 #3
Jamen det er da også rigtigt.
Du har jo fjernet den selectboks der lå og hed \"sel\" i den nedre ramme.
Avatar billede emileej Nybegynder
30. marts 2001 - 07:02 #4
>>olebole
Sikkert fordi du sidder ved computeren - sæt dig over til lommeregneren.

>>jakoba
sel er en variabel, der peger på et objekt, der er min select liste - du gav mig selv koden...

E-)mil
http://www.tdaugaard.dk/fotx/showuser.asp?user=emileej
Avatar billede emileej Nybegynder
30. marts 2001 - 07:03 #5
Jeg har også et problem med scriptet, der står i slutningen af den nederste frame - det giver ikke tekstfeltet fokus, og ændrer ikke teksten i statuslinien, som forventet.

E-)mil
http://www.tdaugaard.dk/fotx/showuser.asp?user=emileej
Avatar billede jakoba Nybegynder
30. marts 2001 - 07:29 #6
Du har ret den ligger der endnu. sorry.
teori:
  ved submit at Chatform genloades siden med nye parametre.
så vi kan let få følgende sekvens:
1) variabel sel sættes til at pege på Chatform.skriv_til
2) brugeren skriver noget i Chatform og submitter
2a) alle links til noget i bundrammen bliver ugyldige da der jo nu skal komme en ny side.
3) submitten lykkes og der loades ny side med Chatform.skriv_til og det hele.
4) men sel duer ikke mere for den har jo ingen anelse om hvor i memory selectboksens objekt tilfældigvis blev placeret dennegang.

så du kommer nok til at skrive:
  sel = _det samme udtryk en gang til_ ;
før hver gang du ønsker at bruge variablen sel.

mvh JakobA

Avatar billede emileej Nybegynder
30. marts 2001 - 08:26 #7
Hvis du kigger efter i funktionen addusers() i indhold framen, er det første der bliver gjort, at definere sel... :)

E-)mil
http://www.tdaugaard.dk/fotx/showuser.asp?user=emileej
Avatar billede emileej Nybegynder
30. marts 2001 - 08:39 #8
Igår fik vi udsættelse, men idag skal det altså være færdigt... Jeg smidder fler\' points efter dette spm. i håb om nogle hurtige og bedre svar...

E-)mil
http://www.tdaugaard.dk/fotx/showuser.asp?user=emileej
Avatar billede olebole Juniormester
30. marts 2001 - 09:16 #9
emil >> Jamen, jeg sad faktisk ved lommeregneren...Jeg var ved at installere noget på Mac\'en på det tidspunkt ;)
/mvh
Avatar billede emileej Nybegynder
30. marts 2001 - 09:22 #10
Hehe kan du ikke hjælpe?

E-)mil
Avatar billede olebole Juniormester
30. marts 2001 - 09:24 #11
Sikkert, men det må blive senere på dagen...har ikke tid lige nu. Men jeg kan se jakoba er aktiv på det, så mon ikke du har løsningen, inden jeg får tid? :))
Avatar billede jakoba Nybegynder
30. marts 2001 - 09:55 #12
emileej >> ku du evt poste koden. Jeg har prøvet et par gange med kan hverken lave save eller view-source på din øverste ramme. noget med opdateringen??

mvh JakobA
Avatar billede emileej Nybegynder
30. marts 2001 - 10:06 #13
Here goes:

<script name=\"StartScript\" language=\"JavaScript\"><!--
    function addusers(){
        sel = top.input.document.ChatForm.skriv_til;
        while (sel.options.length > 0){
            sel.options[0] = null;
        }
        if((typeof(brugerliste)!=\"undefined\" ) && (brugerliste != false) && (brugerliste.lenght > 1)){
            for(i=1;i<=brugerliste.lenght;i++){
                if(sel.length == 0){
                    sel.options[sel.length].text = brugerliste[i];
                    sel.options[sel.length].value = brugerliste[i];
                }else{
                    sel.options[sel.length-1].text = brugerliste[i];
                    sel.options[sel.length-1].value = brugerliste[i];
                }
            }
        }else{
            if(sel.length == 0){
                sel.options[sel.length].text = \"Du er alene\";
                sel.options[sel.length].value = \"\";
            }else{
                sel.options[sel.length-1].text = \"Du er alene\";
                sel.options[sel.length-1].value = \"\";
            }
        }
    }
    addusers();
// -->
</script>

Copyright

E-)mil
http://www.tdaugaard.dk/fotx/showuser.asp?user=emileej
Avatar billede jakoba Nybegynder
30. marts 2001 - 10:11 #14
Har du forresten prøvet med \"JakobA\'s super debugger\"?
den ser sådanher ud:

var debugOn = true;
function doDebug ( str ) {
  if ( debugOn ) debugOn = confirm( str );
}; //end

og så kan du komme kald a la
  doDebug( \"variablen i indeholder \" +i );
ind i koden og checke om din javascript gør hvad du tror den gør.
Avatar billede emileej Nybegynder
30. marts 2001 - 10:21 #15
Den ser god ud - tester liige :)
Avatar billede emileej Nybegynder
30. marts 2001 - 10:24 #16
Den sel er et [object]! ??? :)
Avatar billede jakoba Nybegynder
30. marts 2001 - 10:55 #17
prøv så at udskrive
sel.name
sel.type
sel.value
sel.length
og hvad du ellers kan hitte på :)
Avatar billede jakoba Nybegynder
30. marts 2001 - 11:31 #18
<script name=\"StartScript\" language=\"JavaScript\"><!--

    function addusers(){
        sel = top.input.document.ChatForm.skriv_til;
        sel.options.length = 0;      // slet alle optioner
        if(  (typeof(brugerliste)!=\"undefined\" )
          && (brugerliste != false)
          && (brugerliste.lenght > 1) ) {
          sel.options.length = 0;
          for(i=1;i<=brugerliste.lenght;i++) {
            sel.options[sel.options.length] =
                            new Option(brugerliste[i],brugerliste[i]);
          }
        } else {
          sel.options[sel.options.length] = new Option(\"\",\"du er alene\");
        }
    }
    addusers();
// -->
</script>
Avatar billede jakoba Nybegynder
30. marts 2001 - 11:35 #19
men jeg er ikke glad for den der for-løkke. hellere:

          for( i=0; i<brugerliste.lenght; i++ ) {
            if ( brugerliste[i] )
              sel.options[sel.options.length] =
                            new Option(brugerliste[i],brugerliste[i]);
          }

den skulle være nogenlunde sikker.
mvh JakobA
Avatar billede emileej Nybegynder
30. marts 2001 - 11:37 #20
Det ser fornuftigt ud, men jeg er ikke sikker på, om min hosts server er nede, da jeg ikke kan komme ind på chatten... Hvad med dig?
Avatar billede jakoba Nybegynder
30. marts 2001 - 12:04 #21
bundrammen kommer, men toprammen bliver ikke loaded.
nok snarere en fejl i din asp/php eller hvad du nu bruger.
Avatar billede emileej Nybegynder
30. marts 2001 - 14:35 #22
Nu får jeg ingen fejl, men på den anden side skerder heller ikke noget :(

E-)mil
http://www.tdaugaard.dk/fotx/showuser.asp?user=emileej
Avatar billede jakoba Nybegynder
30. marts 2001 - 14:52 #23
<script name=\"StartScript\" language=\"JavaScript\"><!--

    function addusers(){
        sel = top.input.document.ChatForm.skriv_til;
        if (  (typeof(brugerliste)!=\"undefined\" )
            && (brugerliste != false)
            && (brugerliste.lenght > 1) ) {
          j = 0;
          for( i=0; i<brugerliste.lenght; i++ ) {
            if ( brugerliste[i] )
              sel.options[j++] =
                            new Option(brugerliste[i],brugerliste[i]);
          };
          sel.options.length = j
        } else {
          sel.options[0].text = \"du er alene\";
          sel.options[0].value = \"\";
          sel.options.length = 1;
        }
    }
    addusers();
// -->
</script>

mvh JakobA
Avatar billede emileej Nybegynder
30. marts 2001 - 15:03 #24
Hmmm... Før var der i det mindste et emne på listen (dog tomt) nu er der ingen...
Avatar billede jakoba Nybegynder
30. marts 2001 - 15:12 #25
doDebug( \"brugerliste==\"+brugerliste.toString() );
Avatar billede emileej Nybegynder
30. marts 2001 - 17:45 #26
brugerliste har den forventede værdi...
Avatar billede jakoba Nybegynder
30. marts 2001 - 20:22 #27
2 væsentlige ændringer:

1)
et antal options indsat imellem <select og </select (mest af hensyn til netscape:

2)
array brugerliste  samt
function adduser    er flyttet op i framesetfilen. ( sådan som der reloades ligger de sikrere der :)

filer ligger på
http://hjem.get2net.dk/Jakob.Aggernaes/temp/exp60669/

jeg har rettet:
det ovenfor.
ændret filnavne i frameset filen til .html filer (for at debugge) ret tilbage.
skrevet kommentartegn foran koden i bunden af inputside.html Hvad er den til?
skrevet en masse kommentarer her og der.
I outputside.html (output.php) bliver array definere og adduser kaldt 2 steder. smid en af dem væk.

mvh JakobA
Avatar billede emileej Nybegynder
30. marts 2001 - 21:14 #28
Hehe - syyygt her kommer mit svar (hold på hat og briller):

1) Syyygt

2) Fedt

3) Koden i bunden af input framen er til, at skifte siden der viser \"Loader...\" ud med min output side - for at være sikker på, at input siden bliver indlæst før outputsiden.

4) Arrayet med brugere er defineret om for hved besked - så er det den sidst definerede der gælder ik? Det er den eneste måde - jeg kan se, at mit system kan køre på :)

Tak for din ihærdighed ;)

E-)mil
http://www.tdaugaard.dk/fotx/showuser.asp?user=emileej
Avatar billede emileej Nybegynder
30. marts 2001 - 21:16 #29
Forresten skal scrollen jo heller ikke stoppes :)
Avatar billede emileej Nybegynder
30. marts 2001 - 21:17 #30
Min onload er helt bevist - den kan kun virke såddan, da siden *aldrig* (medmindre der sker en fejl) bliver loadet færdig ;)
Avatar billede jakoba Nybegynder
30. marts 2001 - 21:33 #31
bagfra:

4) og eftersom siden genloades for hver besked behøver adduser ikke at blive kaldt mere en een gang pr load.
PS: nu brugerliste ligger i top huskes arrayet så det kun er nødvendigt at gendefinere den når noget ændrer sig (men det skader ikke at gøre det tiere)

3) prøv om ikke du kan skrotte den kode på en eller anden måde. du ku fx lave en \"nu er jeg loaded\" variabel der sættes i top fra input siden onload.
  Så ku outputsiden teste på den og vente hvis input siden ikke er klar (er der forresten andet end adduser der kaldes deroppefra?) hvis ikke kan det hele indbygges i adduser med 3-4 linier.

2-1 :-))
Avatar billede emileej Nybegynder
31. marts 2001 - 09:52 #32
Kontra:

1) Siden genloades *ikke*.

2) Er der noget galt med min loadkode?

2-2 :-)~

E-)mil
http://www.tdaugaard.dk/fotx/showuser.asp?user=emileej
Avatar billede emileej Nybegynder
31. marts 2001 - 10:03 #33
Nu er det implementeret, og det virker... næsten der er bare det, at ens eget brugernavn også er på listen...
Jeg prøver at rette det - ellers må vi se hvem der gør det først ;)

E-)mil
http://www.tdaugaard.dk/fotx/showuser.asp?user=emileej
Avatar billede emileej Nybegynder
31. marts 2001 - 10:10 #34
Mit forsøg er udkomenteret i framen source - da det ikke virkede - din tur :)

E-)mil
Avatar billede emileej Nybegynder
31. marts 2001 - 10:31 #35
Forresten - hvilke browserer understøtter forms med formelementer i tabeller?

E-)mil
Avatar billede jakoba Nybegynder
31. marts 2001 - 17:03 #36
alle dem jeg har prøvet. Det plejer ikke at være et problem.
Avatar billede emileej Nybegynder
31. marts 2001 - 17:11 #37
Hvad med det med, at man kan se sit eget navn på listen i chatten - hvordan hindrer jeg det?

Og forresten - den måde du stoppede min timer på virker ikke - kan du ikke liiiige logge dig på chatten?

E-)mil
http://www.tdaugaard.dk/fotx/showuser.asp?user=emileej
Avatar billede jakoba Nybegynder
31. marts 2001 - 17:48 #38
var brugerliste = new Array();
var aktivBruger=\"\";
var i, j;

function addusers(){
    if(frames.input && frames.input.document && frames.input.document.ChatForm && frames.input.document.ChatForm.skriv_til ){
        sel = frames.input.document.ChatForm.skriv_til;
        if(brugerliste.length > 1){
            j = 0;
            sel.options[j++] = new Option(\"Alle\",\"\");
            for(i=0; brugerliste.length>i;i++){
                if(brugerliste[i]!=aktivbruger){
                      sel.options[j++] = new Option(brugerliste[i],brugerliste[i]);
                //}
                } //endfor
              sel.options.length = j;
        }else{
            sel.options[0].text  = \"Du er alene\";
            sel.options[0].value = \"\";
            sel.options.length = 1;
        } //endif
    } //endif
}; //end addusers()
Avatar billede jakoba Nybegynder
31. marts 2001 - 17:49 #39
stort B i aktivBruger.
Avatar billede emileej Nybegynder
31. marts 2001 - 18:02 #40
Tak for det hele! Du har såsaneligt fortjænt de point! :)

E-)mil
http://www.tdaugaard.dk/fotx/showuser.asp?user=emileej
Avatar billede jakoba Nybegynder
31. marts 2001 - 18:06 #41
Selv tak. Rart når ting virker
Avatar billede emileej Nybegynder
31. marts 2001 - 18:12 #42
hehe - det er det :)
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