torsten: übergabewerte verwenden

moin leude!

ich habe jetzt den artikel javascript/dom von anfang an, bis zur objektreferenz wort für wort gelesen aber meine autididaktischen fähigkeiten sind wohl stark eingeschränkt... nachdem ich hier freundlicher weise auf den artikel wertübergabe mittels url hingewiesen wurde und ich mich damit beschäftigt habe hab ich wohl gemerkt, daß mein ganzer ansatz falsch ist und die einfachsten sachen nicht gelingen...

eigentlich brauch ich aus der "formular-liste" nur den ersten wert verwenden

  <script>  
   <!--  
    for (var i=0;i<formular.length;i++)  
    {  
     document.write("" + formular[i] + "");  
     document.write("" + formular[++i] + "");  
    }  
   //-->  
  </script>

damit wird auf die daten zugegriffen aber eigentlich brauch ich immer nur den wert 0

  <script>  
   <!--  
   for (var i=0;)  
    {  
     document.write("" + formular[i] + "");  
    }  
   //-->  
  </script>

funktioniert nicht, das dokument bleibt leer... wiso? bitte um hilfe...

mfg torsten

  1. Hi

    <script>
       <!--
       for (var i=0;)
        {
         document.write("" + formular[i] + "");
        }
       //-->
      </script>[/code]

    funktioniert nicht, das dokument bleibt leer... wiso? bitte um hilfe...

    Vllt. ist die Schleife hier unnötig und es reicht wenn du
    document.write("" + formular[0] + "");
    oder so schreibst, checke am besten auch noch ab du den Teil in den KLammern richtig hast! Kenne mich mit JS nicht sooooo gut aus.

    mfg

    Phil Z.

    1. moin Phil Z.!

      danke für die antwort aber das:

      Vllt. ist die Schleife hier unnötig und es reicht wenn du
      document.write("" + formular[0] + "");
      oder so schreibst, checke am besten auch noch ab du den Teil in den KLammern richtig hast!

      hab ich schon versucht, leider erfolglos... formular[0] ist korrekt fals du das meintest... wird an anderer stelle auch verwendet und das geht...

      mfg torsten

  2. Hallo!

    <script>

    <!--
       for (var i=0;)
        {
         document.write("" + formular[i] + "");
        }
       //-->
      </script>

      
    Ich glaube, dass die for-Schleife falsch ist. Du kannst sie entweder komplett weglassen oder richtig definieren. Also mit Zähler und Abbruchbedingung. Siehe SELFHTML: <http://de.selfhtml.org/javascript/sprache/schleifen.htm#for>  
      
    ciao, ww
    
    -- 
    sh:(  fo:|  ch:~  rl:(  br:>  n4:~  ie:%  mo:)  va:)  de:]  zu:)  fl:(  ss:|  ls:~  js:)
    
    1. moin ww!

      danke, schon besser :) das folgende:

        <script>  
       <!--  
          for (var i=0;i<1;i++)  
          {  
           document.write("" + formular[i] + formular[++i] + "");  
          }  
       //-->  
      </script>
      

      bringt den gewünschten efekt aber ist das auch korrekt/ sinnvoll so? wie schon gesagt, verwende ich nur document.write("" + formular[0] + ""); geschieht garnix... wiso nicht? hmmmm...

      mfg torsten

      1. hi,

        danke, schon besser :) das folgende:

        <script>

        <!--
            for (var i=0;i<1;i++)
            {
             document.write("" + formular[i] + formular[++i] + "");
            }
        //-->
        </script>

        
        >   
        > bringt den gewünschten efekt aber ist das auch korrekt/ sinnvoll so?  
          
        Wozu eine Schleife, die nur ein mal durchlaufen wird?  
        Wozu die Leerstrings am Anfang und Ende?  
          
        
        > wie schon gesagt, verwende ich nur document.write("" + formular[0] + ""); geschieht garnix...  
          
        Dann machst du wohl irgendwas verkehrt. Ohne die genaueren Umstände zu kennen, können wir aber auch nicht sehen, was das sein könnte.  
          
        gruß,  
        wahsaga  
          
        
        -- 
        /voodoo.css:  
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        
        1. moin!

          ganz schön blöd, vielleicht kann jemand dieses posting löschen... mein listenwert war nicht [0] sondern [1] sorry für belästigung... (selberhau)

          mfg torsten

  3. Hallo torsten

    eigentlich brauch ich aus der "formular-liste" nur den ersten wert verwenden

    Wozu brauchst du ein Formular?

    Wenn ich deine Ausgangsfrage richtig verstanden habe, geht es dir um einen Link, der auf die Seite verweist, von der der Seitenbesucher kam, allerdings kein einfaches history.back(), was auch auf eine fremde Seite weisen könnte. Es soll dazu dienen, dass jemand, der auf english.html auf die deutsche Flagge klickt, nicht zur Startseite, sondern wieder zu der Seite kommt, von der er kam.

    Wenn es so ist, dann würde ich keinen Link mit dokument.write in die Seite schreiben, und extra mit noscript für javascriptlose Besucher. Stattdessen würde ich den Link ganz normal notieren, wie er jetzt ist und dann mittels einer onload-Funktion das Linkziel ändern. Genauso könnte auch der Parameter an den Link zur englischen Seite angehängt werden. Dann bräuchtest du die dafür notwendigen Funktionen nur in dein Javascript zu packen und müsstest die Seiten selbst nicht zu ändern.

    Noch eine Frage: Soll das die einzige englische Seite bleiben, oder willst du das Projekt noch komplett zweisprachig machen?

    Auf Wiederlesen
    Detlef

    --
    - Wissen ist gut
    - Können ist besser
    - aber das Beste und Interessanteste ist der Weg dahin!
    1. hi detlef!

      schön mal wieder was von dir zu hören :o)

      Wozu brauchst du ein Formular?

      ob ich´s benötige kann ich nicht mal genau sagen aber mein javascript is ganz aua... also verwende ich diese metode zum übergeben der daten. der autor meint ich soll ein formular verwenden weils die werte eh codiert...

      Wenn ich deine Ausgangsfrage richtig verstanden habe, geht es dir um einen Link, der auf die Seite verweist, von der der Seitenbesucher kam, allerdings kein einfaches history.back(), was auch auf eine fremde Seite weisen könnte. Es soll dazu dienen, dass jemand, der auf english.html auf die deutsche Flagge klickt, nicht zur Startseite, sondern wieder zu der Seite kommt, von der er kam.

      jenau ;-) es soll ein history.back() werden das zurückschickt so lange der die verweisende vorhergehende seite zu jungmann.net gehört

      Wenn es so ist, dann würde ich keinen Link mit dokument.write in die Seite schreiben, und extra mit noscript für javascriptlose Besucher. Stattdessen würde ich den Link ganz normal notieren, wie er jetzt ist und dann mittels einer onload-Funktion das Linkziel ändern.

      ich versuche mir gerade vorzustellen was du meinst (?) aber woher weiß ich dann, von wo der visitor kam? er soll ja dahin wo er herkam und nicht dahin wo der pfeffer wächst (oder wieder zu google oder so ähnlich)

      Genauso könnte auch der Parameter an den Link zur englischen Seite angehängt werden. Dann bräuchtest du die dafür notwendigen Funktionen nur in dein Javascript zu packen und müsstest die Seiten selbst nicht zu ändern.

      mir wäre jede andere lösung lieber (besonders einen einfachen link fänd ich cool) weil ich nämlich keinen schimmer habe wie ich letzten endes das doofe formular formatieren soll (ok, ok, das formular ist nicht doof, das prob hockt vor dem bildschirm) css ist ja nur begrenzt anwendbar und mein hübsches "flackermenü" das beim hovern highlightet ist dann an dieser stelle essig

      Noch eine Frage: Soll das die einzige englische Seite bleiben, oder willst du das Projekt noch komplett zweisprachig machen?

      ob du´s glaubst oder nicht... die dateien hab ich versehentlich ins stammverzeichnis geladen, weil ich faul war bleibt sie erst mal da aber für ne komplett zweisprachige seite fehlt mir schlicht die zeit (und sicher auch das vermögen alles ins englische umzusetzen) also bleibt auf unabsehbare zeit der hinweis auf englisch, das es kein englisch geben wird erhalten...

      gut´s nächtle

      mfg torsten

      1. Hallo torsten

        ob ich´s benötige kann ich nicht mal genau sagen aber mein javascript is ganz aua... also verwende ich diese metode zum übergeben der daten. der autor meint ich soll ein formular verwenden weils die werte eh codiert...

        Er will beliebige Daten übergeben können. Ein URL-Parameter darf aber nur Zeichen enthalten, die in URLs erlaubt sind. Ein Formular, dass mit Get verschickt wird, macht dies automatisch.
        Du willst aber lediglich eine zweite URL bzw. einen Teil davon anhängen.

        ich versuche mir gerade vorzustellen was du meinst (?) aber woher weiß ich dann, von wo der visitor kam?

        Bei der URL-Methode müsste an jeden Link zur englischen Seite als Parameter die aktuelle Seite angehängt werden.
        Auf http://www.jungmann.net/topics2007.html zum Beispiel:
        <a id="lang_en" href="english.html?topics2007.html"><img ... /></a>

        Die Seite english.html müsste dann den Parameter aus URL extrahieren, prüfen, ob dort kein Müll drinsteht und diesen als Linkziel von <a id="lang_de" href="start2.html"><img ... /></a> eintragen.

        Auf Wiederlesen
        Detlef

        --
        - Wissen ist gut
        - Können ist besser
        - aber das Beste und Interessanteste ist der Weg dahin!
        1. moin detlef!

          Auf http://www.jungmann.net/topics2007.html zum Beispiel:
          <a id="lang_en" href="english.html?topics2007.html"><img ... /></a>

          das ist ja mal wieder ein tipp allererster kajüte! das erhält mir auch die möglichkeiten meinen hübschen link wie gehabt mit css zu versehen (jipi!)

          Die Seite english.html müsste dann den Parameter aus URL extrahieren, prüfen, ob dort kein Müll drinsteht und diesen als Linkziel von <a id="lang_de" href="start2.html"><img ... /></a> eintragen.

          genau so, das ganze script macht aber ne ganze menge mehr als ich brauch z.b. benötige ich das unescapen nicht und die trennung bei &, das ersetzen der + etc.... alles nur ballast. aber das herauslösen der nötigen fragmente bekomm ich nicht gebacken...

              var formular = new Array(0);  
              decode();  
            
          /* Diese Funktion decodiert die Angaben im Pfad */  
            function decode()  
             {  
              var url = window.location.search ;                                // Die Daten werden aus der  
            
            
              if (url != "")  
              {  
               url = url.substring(1,url.length);                            // Url extrahiert  
              }  
              else  
              {  
               formular[1] = "start2.html";  
              }  
             }
          

          warscheinlich steckt in dem schnipsel alles was ich benötige... (gell?)

          mfg torsten

          1. Moin
            bei

            <a id="lang_en" href="english.html?topics2007.html"><img ... /></a>

            enthält

            var url = window.location.search;

            genau den Wert "?topics2007.html"
            mit

            if (url != "") url = url.substring(1,url.length);

            wird daraus  "topics2007.html"

            Gruß
            rfb

            --
            Man kann einen Menschen nichts lehren, man kann ihm nur helfen, es selbst zu entdecken.
            (Galileo Galilei)
            1. moin!

              fragen über fragen...

              ~~~javascript   function decode()
                 {
                  var url = window.location.search ; //url lesen
                  if (url != "") //wenn nicht ""
                  {
                   url = url.substring(1,url.length); //zeichenkette ab pos 1 ermitteln - in selfhtml finde ich immer nur angaben die sich auf formulare beziehen wenn "length" verwendet wird... wiso?
                  }
                  else //dann
                  {
                  url = "start2.html"; //variablenwert wie oben
                  }
                 }

                
              ...könnte das obige evtl. richtig sein oder? da ich aber nicht weiß was ich oben falsch einsetze weiß ich genau so wenig warum bei verwendung von ` document.write("" + decode(url) + ""); `{:.language-javascript} nix ausgegeben wird... ist der umgang mit der obigen variable "url" richtig?  
                
              was mache ich ggf. bei dem funktionsaufruf falsch?  
                
              [mfg](http://www.jungmann.to/) [torsten](http://www.jungmann.net/extra.html)  
              
              -- 
              ![http://www.jungmann.net/topics2003.html](http://jungmann.net/_picz/auge1.png)[Shakespeare sagt: To be or not to be/](http://www.jungmann.net/topics2007.html)  
              ![http://www.jungmann.net/topics2004.html](http://jungmann.net/_picz/auge2.png)[          Sartre sagt: To be is to do/](http://www.jungmann.net/quest.html)  
              ![http://www.jungmann.net/topics2005.html](http://jungmann.net/_picz/auge3.png)[            Camus sagt: To do is to be/](http://www.jungmann.net/recall.html)  
              ![http://www.jungmann.net/topics2006.html](http://jungmann.net/_picz/auge4.png)[           Sinatra singt: Do be do be do](http://www.jungmann.net/weblog.html)
              
              1. Moin

                function decode()

                {
                    var url = window.location.search ; //url lesen
                    if (url != "") //wenn nicht ""
                    {
                     url = url.substring(1,url.length); //zeichenkette ab pos 1 ermitteln
                    }
                    else //dann
                    {
                    url = "start2.html"; //variablenwert wie oben
                    }

                return url; //Rueckgabewert setzen !

                }

                
                >   
                
                ` document.write("" + decode() + ""); `{:.language-javascript}  
                decode braucht keine Argumente!  
                Wozu du die "" brauchst hast du bislang nicht erklären können?  
                Dann lass sie weg.  
                  
                
                > in selfhtml finde ich immer nur angaben die sich auf formulare beziehen wenn "length" verwendet wird... wiso?  
                
                lies einfach mal ein paar andere Beispiele, zB. bei Arrays  
                  
                Gruß  
                rfb
                
                -- 
                Man kann einen Menschen nichts lehren, man kann ihm nur helfen, es selbst zu entdecken.  
                (Galileo Galilei)
                
                1. moin!

                  thx4rfb :o) *froi* ich habs jetzt sogar verstanden, man muss nur mal eben wissen, das man nach rückgabewerten und return suchen muß... kann mir einer von euch zeigen WO ich danach suchen muß, denn die erklärungen die ich gefunden habe sind zumindest für meine bescheidenen fähigkeiten (oder intelligenz) nicht ausreichend... was also bewirkt "return" und an welcher stelle kann man das einsetzen?

                  document.write("" + decode() + "");

                  das hab ich auch versucht...

                  decode braucht keine Argumente!

                  aber das war mir nicht klar weil mir return nicht klar war (ist) also hab ich mit dem gelesenen ins blaue geschossen :)

                  Wozu du die "" brauchst hast du bislang nicht erklären können?

                  das war so ziemlich das einzige was mir von anfang an klar war... da kommt der rest des links rein der geschrieben werden soll... (superschlaumeier? ;)

                  lies einfach mal ein paar andere Beispiele, zB. bei Arrays

                  arrays ist ein kapitel mit dem ich mich noch zu beschäftigen habe denke ich... aber length wird hier (für mich) einleuchtender als bei den 81 anderen ergebnissen in selfhtml  (dauert wohl ein wenig) die ergebnisse mit dem was man sucht in verbindung zu bringen ist nicht ganz so einfach...

                  @detlef:

                  wie meinteste denn das?

                  Wenn es so ist, dann würde ich keinen Link mit dokument.write in die Seite schreiben, und extra mit noscript für javascriptlose Besucher. Stattdessen würde ich den Link ganz normal notieren, wie er jetzt ist und dann mittels einer onload-Funktion das Linkziel ändern. Genauso könnte auch der Parameter an den Link zur englischen Seite angehängt werden. Dann bräuchtest du die dafür notwendigen Funktionen nur in dein Javascript zu packen und müsstest die Seiten selbst nicht zu ändern.

                  mfg torsten

                  1. Hallo torsten

                    wie meinteste denn das?

                    Seltsame Frage, fast zwei Stunden, nachdem ich dir hier ein Beispiel verlinkt habe.

                    Auf Wiederlesen
                    Detlef

                    --
                    - Wissen ist gut
                    - Können ist besser
                    - aber das Beste und Interessanteste ist der Weg dahin!
                    1. moin!

                      Seltsame Frage, fast zwei Stunden, nachdem ich dir hier ein Beispiel verlinkt habe.

                      tschuldigung, hab ich glatt übersehen... ich habe mir jetzt deine vier testseiten runtergeladen und zusätzlich die *.js datei das ganze ist ne wunderprima idee und funktioniert genau so prächtig, soweit ich das beurteilen kann... danke!

                      allerdings versuche ich gerade herauszufinden was das ganze bewirkt und wie es sich zusammensetzt...

                      var domain = window.location.href; //eigene url lesen

                      check ich z.b. nicht hier hab ich nachgeschaut und da wird doch mit der methode was übergeben und nicht gelesen...

                      mfg torsten

                      1. Hallo torsten

                        var domain = window.location.href; //eigene url lesen

                        check ich z.b. nicht hier hab ich nachgeschaut und da wird doch mit der methode was übergeben und nicht gelesen...

                        Wie kommst du darauf, dass es eine Methode ist, schau mal auf den Anfang der Seite:

                        Eigenschaften:

                        ...
                        hostname (Domain-Name innerhalb eines URI)
                        href (URI / Verweis zu URI)
                        pathname (Pfadname innerhalb eines URI)
                        ...

                        Variable = Eigenschaft -> Der Variablen den Wert zuweisen, den die Eigenschaft hat.
                        Eigenschaft = Variable -> Die Eigenschaft auf den Wert der Variablen setzen.

                        Auf Wiederlesen
                        Detlef

                        --
                        - Wissen ist gut
                        - Können ist besser
                        - aber das Beste und Interessanteste ist der Weg dahin!
                        1. moin!

                          Wie kommst du darauf, dass es eine Methode ist, schau mal auf den Anfang der Seite:

                          nun gut, die zusammenhänge gehen mir noch etwas verlustig, aber unter "methode" verstehen du und ich vermutlich etwas völlig verschiedenes... für dich verbindet sich mit dem wort irgendeine art von definition... welche?

                          ich dagegen würde ganz ungezwungen "dem weg" oder "der art und weise" damit assoziieren... werde wohl bis montag brauchen um das "auseinanderzufummeln" und hoffe das dieses posting bis dahin überlebt... meine interprätation wirst du entweder stück für stück in fragen vorfinden oder am montag als großes unbekanntes =)

                          mfg torsten

                          1. Hallo torsten

                            nun gut, die zusammenhänge gehen mir noch etwas verlustig, aber unter "methode" verstehen du und ich vermutlich etwas völlig verschiedenes... für dich verbindet sich mit dem wort irgendeine art von definition... welche?

                            Vielleicht liest du mal in SELFHTML: Objektmethoden, Eigenschaften von Objekten

                            Auf Wiederlesen
                            Detlef

                            --
                            - Wissen ist gut
                            - Können ist besser
                            - aber das Beste und Interessanteste ist der Weg dahin!
                            1. moin var leser = siechfried || detlef  ||!= sichfried ||!= detlef *ggg* <- ich bitte diesen kleinen und völlig inkorrekten jokus zu verzeihen ;o)

                              Vielleicht liest du mal in SELFHTML:

                              ich lese mehr in self als du vielleicht vermutest, allerdings nur sehr zerpflückt...

                              |Objektmethoden, Eigenschaften von Objekten

                              jetzt habe ich auch verstanden was du meinst und kann mir eine methode zum bauen einer eselsbrücke überlegen; wie ich was auseinanderhalten muß ;-)

                              @siechfried: die erklärung oben ist sehr gut, danke! sowas versteh ich und kann auch die zusammenhänge auseinanderbasteln.

                                
                                  myObj = document.getElementById("lang_en"); // versuche, eine Referenz auf das Objekt mit der id 'lang_en' zu holen  
                                  if (myObj && myObj.href)  // prüfe, ob diese Referenz gültig ist und eine Eigenschaft 'href' besitzt  
                                   {  
                                    myObj.href = myObj.href + "?" + window.location.href; //wie man diesen teil der funktion umschreiben soll ist mir auch schleierhaft [nimm die variable mit der eigenschaft href plus fragezeichen plus die adresszeile oder deren inhalt, aber worauf genau greift das zu? ich check leider nicht, wodurch wird eigentlich genau der link verändert oder überschrieben?]  
                              
                              

                              wenn einer von euch lange weile hat kann er ja mal in diese javascript datei reinschauen, ich habe dem window.onload (->was ist das eigentlich schon wieder, window ist wohl die OBJEKTeigenschaft und onload die OBJEKTmethode.. das ist keine funktion, was also dann?<-) eine weitere for-schleife hinzugefügt (ist auch nicht ganz auf meinem mist gewachsen) und würde gern wissen ob das so richtig eingebunden ist... es funzt zwar im IE & FF das will aber noch nix heißen hab ich gelernt...

                              mfg torsten

                        2. moin detlef!

                          wenn ich dich nochmal belästigen darf:

                          die funktion decode() hab ich, so glaube ich verstanden. aber was bedeutet/ macht das folgende?

                            
                            
                           if (document.getElementById) // wenn bedingung->(im dokument ein element mit id gefunden wird)  
                             {  
                              var myObj = document.getElementById("lang_de"); // das objekt mit der id=lang_de ist  
                              if (myObj && myObj.href) // was bewirkt diese kombi genau?  
                          
                          

                          mfg torsten

                          1. was bedeutet/ macht das folgende?
                            if (document.getElementById) // wenn bedingung->(im dokument ein element mit id gefunden wird)

                            Das fragt ab, ob der Client die Methode document.getElementById kennt. Falls ja, dann ...

                            var myObj = document.getElementById("lang_de"); // das objekt mit der id=lang_de ist

                            ... versuche, eine Referenz auf das Objekt mit der id 'lang_de' zu holen, und

                            if (myObj && myObj.href)

                            prüfe, ob diese Referenz gültig ist und eine Eigenschaft 'href' besitzt (typisch für Links).

                            Siechfred

                            --
                            Ich bin strenggenommen auch nur interessierter Laie. (molily)
              2. Hallo torsten

                function decode()

                {
                    var url = window.location.search ; //url lesen
                    if (url != "") //wenn nicht ""
                    {
                     url = url.substring(1,url.length); //zeichenkette ab pos 1 ermitteln - in selfhtml finde ich immer nur angaben die sich auf formulare beziehen wenn "length" verwendet wird... wiso?

                  
                Du weist url eine Zeichenkette zu, womit diese ein Stringobjekt wird. Ein Stringobjekt besitzt die Eigenschaft [length](http://de.selfhtml.org/javascript/objekte/string.htm#length), wie auch die Methode [substring](http://de.selfhtml.org/javascript/objekte/string.htm#substring) neben anderen Methoden.  
                  
                
                >  ~~~javascript
                
                   }  
                
                >     else //dann  
                >     {  
                >     url = "start2.html"; //variablenwert wie oben  
                >     }  
                >    }
                
                

                Wenn deine Funktion etwas zurückgeben soll, dann fehlt noch return WasSieZurueckGebenSoll;

                da ich aber nicht weiß was ich oben falsch einsetze weiß ich genau so wenig warum bei verwendung von document.write("" + decode(url) + ""); nix ausgegeben wird... ist der umgang mit der obigen variable "url" richtig?

                Erwartet die Funktion einen Parameter?
                Wie willst du url an die Funktion übergeben, wenn url erst als lokale Variable innerhalb der Funktion angelegt wird?

                Auf Wiederlesen
                Detlef

                --
                - Wissen ist gut
                - Können ist besser
                - aber das Beste und Interessanteste ist der Weg dahin!
      2. Hallo torsten

        ich versuche mir gerade vorzustellen was du meinst (?)

        Damit du dir vorstellen kannst, wie ich es meine: Testseite zum anderen history.back

        Auf Wiederlesen
        Detlef

        --
        - Wissen ist gut
        - Können ist besser
        - aber das Beste und Interessanteste ist der Weg dahin!