Engin: Schriftart wechsel hakt manchmal

0 78

Schriftart wechsel hakt manchmal

Engin
  • javascript
  1. 0

    Schriftart wechsel hakt manchmal korrektur

    Engin
    1. 0
      Patrick Andrieu
      1. 0

        Danke, gelöst

        Engin
        1. 0
          Struppi
          1. 0
            Engin
            1. 0
              Engin
              1. 0
                Patrick Andrieu
                1. 0
                  Engin
                  1. 0
                    Patrick Andrieu
                    1. 0
                      Engin
                      1. 0
                        Engin
                        1. 0
                          Patrick Andrieu
                          1. 0
                            Engin
                            1. 0
                              Patrick Andrieu
                              1. 0
                                Patrick Andrieu
                                1. 0
                                  Engin
                                2. 0
                                  Engin
                                  1. 0
                                    Patrick Andrieu
                                    1. 0
                                      Engin
                                      1. 0
                                        Patrick Andrieu
                                        1. 0
                                          Engin
                                          1. 0
                                            Patrick Andrieu
                                            1. 0
                                              Engin
                                              1. 0
                                                Shadowcrow
                                                1. 0
                                                  Engin
                                                  1. 0
                                                    Shadowcrow
                                            2. 0
                                              Engin
                                              1. 0
                                                Struppi
                                              2. 0
                                                Patrick Andrieu
                                                1. 0
                                                  Struppi
                                                  1. 0
                                                    Patrick Andrieu
                                                    1. 0

                                                      Schrift formatieren mit Javascript | Javascript ist Toll! :-)

                                                      Engin
                                                      1. 0
                                                        Struppi
                                                      2. 0
                                                        Patrick Andrieu
                                                        1. 0
                                                          Engin
                                                          1. 0
                                                            Patrick Andrieu
                                                            1. 0

                                                              AArgh!

                                                              Patrick Andrieu
                                                            2. 0
                                                              Engin
                                                              1. 0
                                                                Patrick Andrieu
                                                                1. 0
                                                                  Engin
                                                                2. 0
                                                                  Engin
                                                                  1. 0
                                                                    Patrick Andrieu
                                                                    1. 0

                                                                      Aargh (zu schnell getippt)!

                                                                      Patrick Andrieu
                                                                    2. 0
                                                                      Engin
                                                                      1. 0
                                                                        Patrick Andrieu
                                                                        1. 0
                                                                          Engin
                                                                          1. 0

                                                                            Dateien lesen und schreiben

                                                                            Patrick Andrieu
                                                                            • perl
                                                                            1. 0
                                                                              Engin
                                                                            2. 0
                                                                              Engin
                                                                              1. 0
                                                                                Struppi
                                                                                1. 0
                                                                                  Patrick Andrieu
                                                                                  1. 0
                                                                                    Engin
                                                                                  2. 0
                                                                                    Struppi
                                                                                    1. 0
                                                                                      Engin
                                                                                      1. 0
                                                                                        Struppi
                                                                                        1. 0
                                                                                          Engin
                                                                                          1. 0
                                                                                            Struppi
                                                                                            1. 0
                                                                                              Patrick Andrieu
                                                                                              1. 0
                                                                                                Struppi
                                                                                                1. 0
                                                                                                  Patrick Andrieu
                                                                                                  1. 0
                                                                                                    Struppi
                                                                                      2. 0
                                                                                        Patrick Andrieu
                                                                                    2. 0
                                                                                      Patrick Andrieu
                                                                                      1. 0
                                                                                        Struppi
                                                                              2. 0
                                                                                Patrick Andrieu
                2. 0
                  Engin
                  1. 0
                    EKKi
        2. 0
          Patrick Andrieu
          1. 0
            Engin
            1. 0
              Patrick Andrieu
              1. 0
                Kai345
  2. 0
    Struppi
    1. 0
      Patrick Andrieu
      1. 0
        Engin
        1. 0
          Struppi
          1. 0
            Engin
            1. 0
              Struppi

Hi,

hab eine Javascript Funktion gefunden, mit der ich all mögliche Schrift einstellungen machen kann,

  
function setFont()  
{  
document.getElementById("song_text").style.fontFamily="Times new Roman";  
}  

Bei Schriftarten, die keine Leerzeichen haben Funktioniert das, nur sobald
Leerzeichen ins Spiel kommen,
hakt das ganze, man muss dann Wild hin und her klicken, bis es dann doch geht.

Ich hatte gelesen, Wörter mit Leerzeichen müssen in Klammern ("), sind sie doch.

Ich hab´s schon mit Bindestrichen (-) versucht, ohne Leerzeichen aber immer das selbe Problem.
Irgendwann hakt es und dann muss man auf allmögliche Schriftarten klicken und irgendwann geht es wieder.

Das Passiert aber nur mit Schriftarten, die ein Leerzeichen enthalten, woran liegt das?

Grüße aus H im R,
Engin

  1. Hi,

    Das Passiert aber nur mit Schriftarten, die ein Leerzeichen enthalten, woran liegt das?

    Das stimmt wohl nicht ganz, das Passiert bei Schriftarten mit gleichen anfangsbuchstaben.

      
    function Trebuchet()  
    {  
    document.getElementById("song_text").style.fontFamily="Trebuchet";  
    }  
    function Times()  
    {  
    document.getElementById("song_text").style.fontFamily="Times new Roman";  
    }
    

    Wenn ich von "Times new Roman" auf "Trebuchet" wechsel, hakt es.

    Der ganze Code sieht so aus

      
    function setFont()  
    {  
    document.getElementById("song_text").style.fontFamily="Arial";  
    }  
    function Verdena()  
    {  
    document.getElementById("song_text").style.fontFamily="Verdena";  
    }  
    function Georgia()  
    {  
    document.getElementById("song_text").style.fontFamily="Georgia";  
    }  
    function Trebuchet()  
    {  
    document.getElementById("song_text").style.fontFamily="Trebuchet";  
    }  
    function Impact()  
    {  
    document.getElementById("song_text").style.fontFamily="Impact";  
    }  
    function Times()  
    {  
    document.getElementById("song_text").style.fontFamily="Times new Roman";  
    }  
    function Bold()  
    {  
    document.getElementById("song_text").style.fontWeight="bold";  
    }  
    function Normal()  
    {  
    document.getElementById("song_text").style.fontWeight="normal";  
    }  
    function gross()  
    {  
    document.getElementById("layout").style.fontSize="1.1em";  
    }  
    function sizenormal()  
    {  
    document.getElementById("layout").style.fontSize="1em";  
    }
    

    Der aufruf erfolgt über input buttons

    <input type="button" onclick="setFont()" value="Arial" />

    Grüße aus H im R,
    Engin

    1. Hallo Engin!

      Der ganze Code sieht so aus

      function setFont()
      {
      document.getElementById("song_text").style.fontFamily="Arial";
      {viel zu lang.....]

      Und wenn Du 100 Schriftarten austauschen möchtest, hättest Du einen 300 Zeilen, ellenlangen Code? ;)

      [code lang=javascript]
      function setFont(font) {
        document.getElementById("song_text").style.fontFamily=font;
      }

        
      und  
        
      `<input type="button" onclick="setFont('Verdana')" />`{:.language-html}  
        
        
      Viele Grüße aus Frankfurt/Main,  
      Patrick
      
      -- 
      ![](http://www.atomic-eggs.com/fuernA.jpg)  
        
      \_ - jenseits vom delirium - \_  
        
      [[link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash](http://www.atomic-eggs.com/)]  
      Nichts ist unmöglich? [Doch!](http://www.atomic-eggs.com/cwi/cwi_4.shtml)  
      Heute schon ge[gök](http://goek.atomic-eggs.com/goek_goek.html)t?
      
      1. Hi Patrick,

        {viel zu lang.....]

        Und wenn Du 100 Schriftarten austauschen möchtest, hättest Du einen 300 Zeilen, ellenlangen Code? ;)

        Ich hatte Angst das mir jemand schreibt, ich müsse daraus ein "Array" machen und die Werte
        bei jedem zugriff auswerten und dann speichern, vorher aber noch mit was anderem was anderes machen.  :-))

        function setFont(font) {
          document.getElementById("song_text").style.fontFamily=font;
        }

        
        > `<input type="button" onclick="setFont('Verdana')" />`{:.language-html}  
          
        Das sieht bedeutend besser und Professioneller aus, Danke.  
        War doch nicht so schwer, wie ich es angenommen hatte,  
        also das ganze Client Seitig umzusetzen. Wobei den Tricky Part hab ich noch  
        nicht gefunden, nämlich das Ganze dann Seiten übergreifend zu realisieren.  
          
        Mal schauen, das werde ich Heute Abend probieren.  
          
        Grüße aus H im R,  
        Engin  
        
        -- 
        ["ich bin ein Insekt, ich bin ein Insekt"](http://nimmet.de/nimmet-dateien/banjo.shtml)  
          
        ![](http://nimmet.de/nimmet-bilder/valigator.gif)[Der Valligator](http://old.atomic-eggs.com/old_forum/messages/237.html#a1)  
          
        ["Computer sagt Nein"](http://www.comedycentral.de/index.php/Video/Detail/vid/541168/playerMode/fullscreen)
        
        1. War doch nicht so schwer, wie ich es angenommen hatte,
          also das ganze Client Seitig umzusetzen. Wobei den Tricky Part hab ich noch
          nicht gefunden, nämlich das Ganze dann Seiten übergreifend zu realisieren.

          Cookie setzten, auslesen und document.body.style entsprechend ändern.

          Struppi.

          1. Hi Struppi,

            Cookie setzten, auslesen und document.body.style entsprechend ändern.

            Das führt gleich zu einer folge Frage, wie ermittel ich den derzeit gesetzten Wert (Schriftart),
            im Firebug hab ich gesehen, das es als element.style gesehen wird, wie komm ich
            an den aktuellen Wert dran?

            Grüße aus H im R,
            Engin

            1. Hi@All,

              ich geb´s auf, ich steig da nicht durch, ist doch schwieriger als ich dachte,
              aber an und für sich bin ich mit dem Groben ganz zufrieden.

              Vielleicht könnt ihr ja mal was dazu sagen, http://my-songtexte.de/songtext.php,
              in der Mitte neben dem Drucker und dem Mail icon verstecken sich die formatierungs Tools.

              Grüße aus H im R,
              Engin

              1. Hallo Engin!

                ich geb´s auf, ich steig da nicht durch, ist doch schwieriger als ich dachte,

                Na klar, hast Dir ja etwas viel vorgenommen, für ein JavaScript-Anfang ;)

                aber an und für sich bin ich mit dem Groben ganz zufrieden.

                Was nicht klappt, ist wohl die Wertübergabe, was? Nicht ganz einfach, wenn man die Schriftart UND den font-weight UND noch die Größe übergeben will...

                Auf die Schnelle einfallen täterää mir eine Art Code:

                Klick auf den Button Verdana: window.name = "v";
                Klick auf Fett: window.name = window.name + "b"; // vb
                Klick auf Größer: window.name = window.name + "s"; // vbs

                Daraus ergeben sich verschiedene Codes:

                v = nur Verdana, nicht Fett, normale Größe
                vb = Verdana, Fett
                vbs = Verdana, Fett, Größer
                vs = Verdana, Größer
                s = default-font, Größer
                bs = default-font, fett und größer
                tbs = trebuchet, fett, größer
                rb = times new Roman, fett, normale Größe
                etc...

                Die Empfängerseite prüft mit Regular Expressions nach dem Vorkommen im window.name-String von »b« und/oder »s« für »bold« und »große Schrift« und von den Code-Kürzeln für die Schriftarten (z.B. »v« für Verdana), wobei die Kürzel natürlich nicht »s« oder »b« sein dürften, da musst Du sie Dir genau ausdenken.

                Viele Grüße aus Frankfurt/Main,
                Patrick

                --

                _ - jenseits vom delirium - _
                [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                Nichts ist unmöglich? Doch!
                Heute schon gegökt?
                1. Hi Patrick,

                  Na klar, hast Dir ja etwas viel vorgenommen, für ein JavaScript-Anfang ;)

                  Doofe Angewohnheit, ich versuch bei allem direkt Quer einzusteigen statt mich anständig da rein zu lesen.

                  Auf die Schnelle einfallen täterää mir eine Art Code:

                  Klick auf den Button Verdana: window.name = "v";
                  Klick auf Fett: window.name = window.name + "b"; // vb
                  Klick auf Größer: window.name = window.name + "s"; // vbs

                  ok, hab mir jetzt nochmal deine haupt.js und font.js gekl...äähh runtergeladen.  :-)
                  Mal sehen, vielleicht schaff ich es ja doch.

                  Grüße aus H im R,
                  Engin

                  1. Hallo Engin!

                    ok, hab mir jetzt nochmal deine haupt.js und font.js gekl...äähh runtergeladen.  :-)

                    Na, für Dein Vorhaben brauchst Du ja beide nicht zwingend...

                    Also wenn z.b. Arial als Schriftart gewählt, wo ist dann dieser Wert gespeichert und wie komme ich an diesen ran?

                    Werte, die Du mit JavaScript verändert hast, lassen sich mit JavaScript wieder auslesen. Einfach abfragen:

                    alert(document.getElementById('song_text').style.fontFamily);

                    Mit diesen Werten könnte ich ein "normales" Cookie füttern und damit arbeiten, das müsste ich an und für sich noch hinkriegen.

                    Wenn Du mit Cookies arbeitest, brauchst Du kein window.name. Wenn Du mit window.name arbeitest, brauchst Du, je nach Situation, vielleicht doch Cookies. Bedenke aber, dass Cookies vom User abgelehnt werden können, wohingegen er gegen window.name (noch) keinen Einfluß hat. Auch gilt für window.name die Same Origin Policy nicht, weswegen eine Prüfung zu Beginn des Scripts immer vonnöten ist.

                    Viele Grüße aus Frankfurt/Main,
                    Patrick

                    --

                    _ - jenseits vom delirium - _
                    [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                    Nichts ist unmöglich? Doch!
                    Heute schon gegökt?
                    1. Hi Patrick,

                      Na, für Dein Vorhaben brauchst Du ja beide nicht zwingend...

                      Ich weiss, aber ich muss erstmal entschlüsseln, was in dem Script was tut.

                      Werte, die Du mit JavaScript verändert hast, lassen sich mit JavaScript wieder auslesen. Einfach abfragen:
                      alert(document.getElementById('song_text').style.fontFamily);

                      <script type="text/javascript">  
                      alert(document.getElementById('text').style.fontFamily);  
                      </script>
                      

                      Da poppt zwar das alert Fenster auf, steht aber nichts drin. Ich hab auch mit verschiedenen IDs getestet,
                      immer das gleiche Resultat.

                      Wenn Du mit Cookies arbeitest, brauchst Du kein window.name. Wenn Du mit window.name arbeitest, brauchst Du, je nach Situation, vielleicht doch Cookies. Bedenke aber, dass Cookies vom User abgelehnt werden können, wohingegen er gegen window.name (noch) keinen Einfluß hat.

                      Ich werde noch versuchen, mit deinen .js das umzusetzen, wenn´s nicht klappt, greife ich auf die Cookie Methode.

                      Grüße aus H im R,
                      Engin

                      1. Hi Patrick,

                        mittlerweile bin ich halbwegs durch die font.js gestiegen, zumindest funktioniert es jetzt auf
                        meinem System so wie soll. (linie is raus :-)

                        Mich würd nur eine Sache interessieren,

                        var tags = new Array("p");  
                          
                            diese = document.getElementsByTagName(tags[i]);  
                        
                        

                        Was muss ich hier machen, damit ich nur eine Id anspreche statt allen p´s?

                        Ich hab mal "diese = document.getElementById('song_text');" und diverse andere Sachen in diese Richtung versucht,
                        fruchtet aber nichts.

                        Grüße aus H im R,
                        Engin

                        1. Hallo Engin!

                          Ich antworte zuerst auf diese Frage:

                          Werte, die Du mit JavaScript verändert hast, lassen sich mit JavaScript wieder auslesen. Einfach abfragen:
                          alert(document.getElementById('song_text').style.fontFamily);

                          <script type="text/javascript">

                          alert(document.getElementById('text').style.fontFamily);
                          </script>

                            
                          Struppis Spruch kennst Du?  
                            
                          <http://www.atomic-eggs.com/z_testdir/enginfont.html>  
                            
                          Natürlich ist das alert leer, wenn Du \_zuerst\_ auf »show last setted font« klickst, die font-family wird beim Laden nicht mittels JavaScript gesetzt. Wenn allerdings im <script>-Bereich ein entsprechendes:  
                            
                            `document.getElementById('song_text').style.fontFamily = "irgendwas";`{:.language-javascript}  
                            
                          würde das Alertfenster eben auch "irgendwas" anzeigen.  
                            
                          
                          > mittlerweile bin ich halbwegs durch die font.js gestiegen, zumindest funktioniert es jetzt auf  
                          > meinem System so wie soll. (linie is raus :-)  
                            
                          Die font.js habe ich geschrieben, um mehrere Elemente anzusprechen, die in dem Array zusammengefasst sind. Für nur ein Element mit einer ID, dann brauchst Du das nicht, siehe Beispiel.  
                            
                            
                          Viele Grüße aus Frankfurt/Main,  
                          Patrick
                          
                          -- 
                          ![](http://www.atomic-eggs.com/fuernA.jpg)  
                            
                          \_ - jenseits vom delirium - \_  
                            
                          [[link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash](http://www.atomic-eggs.com/)]  
                          Nichts ist unmöglich? [Doch!](http://www.atomic-eggs.com/cwi/cwi_4.shtml)  
                          Heute schon ge[gök](http://goek.atomic-eggs.com/goek_goek.html)t?
                          
                          1. GuMo Patrick,

                            Struppis Spruch kennst Du?

                            Ja, mittlerweile sogar sehr Gut. :-)

                            http://www.atomic-eggs.com/z_testdir/enginfont.html

                            Danke für das bsp., das sieht alles so einfach aus, wenn ihr da was kritzelt, aber kaum versetze ich mal
                            einen Buchstaben geht nichts mehr...

                            document.getElementById('song_text').style.fontFamily = "irgendwas";
                            würde das Alertfenster eben auch "irgendwas" anzeigen.

                            Ja, jetzt geht es. :-))

                            Die font.js habe ich geschrieben, um mehrere Elemente anzusprechen, die in dem Array zusammengefasst sind. Für nur ein Element mit einer ID, dann brauchst Du das nicht, siehe Beispiel.

                            Hatte mich gerade an die window.name Geschichte gewöhnt, mit font.js wird bei mir die Schriftgrösse
                            schon mal gespeichert, auch wenn ich auf andere Seiten geh, werde aber wohl doch alles
                            in Cookies speichern und einen entsprechenden vermerk auf der Seite machen.

                            Danke für deine Hilfe.

                            Grüße aus H im R,
                            Engin

                            1. Hallo Engin!

                              Hatte mich gerade an die window.name Geschichte gewöhnt,

                              Schau Dir dieses neue Beispiel jetzt an:

                              http://www.atomic-eggs.com/z_testdir/enginfont2.html

                              Jetzt im selben Fenster, tippe ein:

                              www.atomic-eggs.com/cwi/cwi_4.shtml

                              Du bekommst meine Gästebuchseite zu sehen. Beim Laden derselben greift hier font.js und ändert window.name, nachdem es keine Zahl ist, auf die Normalgröße 12. Jetzt klick auf den Zurück-Button Deines Browsers, um zu enginfont2.html zurück zu kommen. Klicke direkt auf »Show last setted font«:

                              Font: 12
                              window.name: 12

                              Da es keine Font mit dem Namen »12« gibt (vielleicht hat jemand so eine *g*), wird die die im Skriptbereich von enginfont2.html (mittlerweile, habe das eben geändert) festgelegte Schriftart »Times New Roman« gesetzt.

                              Auf der »empfaengerseite.html« wird anschließend den letztgesetzten Wert über window.name eingelesen und entsprechen gesetzt.

                              Viele Grüße aus Frankfurt/Main,
                              Patrick

                              --

                              _ - jenseits vom delirium - _
                              [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                              Nichts ist unmöglich? Doch!
                              Heute schon gegökt?
                              1. Re!

                                Font: 12
                                window.name: 12

                                Da es keine Font mit dem Namen »12« gibt (vielleicht hat jemand so eine *g*), wird die die im Skriptbereich von enginfont2.html (mittlerweile, habe das eben geändert) festgelegte Schriftart »Times New Roman« gesetzt.

                                Das war so nicht ganz korrekt beschrieben. Im Beispiel wird die font-family bei window.name mit dem Wert 12 auch auf 12 gesetzt. Nur, da es keine Schriftart diesen Namens gibt, greift der Browser auf seine Default-Font zurück (bei mir eben: Times New Roman).

                                Viele Grüße aus Frankfurt/Main,
                                Patrick

                                --

                                _ - jenseits vom delirium - _
                                [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                                Nichts ist unmöglich? Doch!
                                Heute schon gegökt?
                                1. Hi Patrick,

                                  Das war so nicht ganz korrekt beschrieben. Im Beispiel wird die font-family bei window.name mit dem Wert 12 auch auf 12 gesetzt. Nur, da es keine Schriftart diesen Namens gibt, greift der Browser auf seine Default-Font zurück (bei mir eben: Times New Roman).

                                  Danke für das beispiel, das werde ich mir Heute Abend nochmal in Ruhe ansehen,
                                  muss hier leider das Feld räumen.

                                  Bis später.

                                  Gute Nacht und Grüße aus H im R,
                                  Engin

                                2. Hi Patrick,

                                  nochmal vielen Dank für die beispiele, hab jetzt einen mittelweg gefunden, halb Cookies halb window.name.

                                  Den Vorschlag mit window.name = window.name + "wai"; krieg ich nicht gebacken,
                                  das höchste der Gefühle, von dem was ich geschafft hatte war,
                                  das alles immer und immer wieder gespeichert wurde, z.b.

                                  window.name:Tahoma MSboldboldnormalbold

                                  Meine Lösung sieht wie folgt aus, window.name speichert die fontFamily und
                                  bold - normal werden in einem Cookie gespeichert, mit dem Wert, den ich im
                                  Cookie speichere füttere ich einfach einen CSS Selektor.

                                  Die Schriftgrösse habe ich wieder in em umgeschrieben und hab einen vermerk auf der Seite,
                                  wie man in einem Browser skalieren kann.

                                  Und so sieht es aus.

                                  Grüße aus H im R,
                                  Engin

                                  1. Hallo Engin!

                                    window.name:Tahoma MSboldboldnormalbold

                                    Hm, ja, das müsste innerhalb des JavaScripts geprüft werden, ob ein Wert schon gelegt wurde, war mir nach meinem Post aufgefallen (keiner ist aber draufgesprungen *g*).

                                    Die Schrift heißt Verdana, nicht Verdena (-> bring keine Schriftänderung, wenn es falsch ist),

                                    Meine Lösung sieht wie folgt aus, window.name speichert die fontFamily und
                                    bold - normal werden in einem Cookie gespeichert, mit dem Wert, den ich im
                                    Cookie speichere füttere ich einfach einen CSS Selektor.
                                    Und so sieht es aus

                                    Es sieht aber so aus, als würde beim Schritwechsel die Seite komplett neu geladen, dann brauchst Du ja im Grunde kein JavaScript. Und wenn etwas in der URL steht, Parameter, wen juckt's? Außerdem kann man immer noch mit POST übermitteln...

                                    JavaScript, wenn etwas beim Client passierern soll, ansonsten serverseitig lösen!

                                    Viele Grüße aus Frankfurt/Main,
                                    Patrick

                                    --

                                    _ - jenseits vom delirium - _
                                    [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                                    Nichts ist unmöglich? Doch!
                                    Heute schon gegökt?
                                    1. GuMo Patrick,

                                      Hm, ja, das müsste innerhalb des JavaScripts geprüft werden, ob ein Wert schon gelegt wurde, war mir nach meinem Post aufgefallen (keiner ist aber draufgesprungen *g*).

                                      Und ich bin reingefallen.  :-)

                                      Die Schrift heißt Verdana, nicht Verdena (-> bring keine Schriftänderung, wenn es falsch ist),

                                      Das hatte ich frei Hand geschrieben, in meiner Datei steht Verdena.

                                      Und ich hab erst in der vorschau gesehen, das du 'Verdana' geschrieben hast. :-)
                                      Ich kann nur bei der hälfte meiner gewählten Schriftarten ein Unterschied ausmachen.

                                      Es sieht aber so aus, als würde beim Schritwechsel die Seite komplett neu geladen, dann brauchst Du ja im Grunde kein JavaScript. Und wenn etwas in der URL steht, Parameter, wen juckt's? Außerdem kann man immer noch mit POST übermitteln...

                                      Mich juckt´s. :-) Deine anspielung letztens auf Traffic hat ich nachdenklich gestimmt.
                                      Ich hab das Script ein wenig erweitert,

                                      <select onchange="setFont('song_text', this.value), this.form.submit();">  
                                      <option>Schrifttyp &auml;ndern</option>  
                                      <option value="Arial">Arial</option>  
                                      ...  
                                      </select>  
                                      <script type="text/javascript">  
                                      document.write('-&gt; ', window.name);  
                                      </script>
                                      

                                      Da ich nach Auswahl einer Schriftart noch in Form von Text die Auswahl anzeigen will.

                                      JavaScript, wenn etwas beim Client passierern soll, ansonsten serverseitig lösen!

                                      Das neu laden war mir auch aufgefallen, werd mal was passendes in ajax suchen, um
                                      das zu verhindern und dennoch mein Ziel zu erreichen.

                                      Und ansonsten ist die Seite Ok? Also keine Augenscheinlichen Fehler oder so?

                                      Grüße aus H im R,
                                      Engin

                                      1. Hallo Engin!

                                        Und ich bin reingefallen.  :-)

                                        Und kein anderer hat irgendwas angemerkt ;)

                                        Die Schrift heißt Verdana, nicht Verdena (-> bring keine Schriftänderung, wenn es falsch ist),
                                        Und ich hab erst in der vorschau gesehen, das du 'Verdana' geschrieben hast. :-)

                                        ja mit verdena kann's ja nichts verden ;)

                                        Wenn mir heute danach ist, bastle ich noch an den Beispielen...

                                        Viele Grüße aus Frankfurt/Main,
                                        Patrick

                                        --

                                        _ - jenseits vom delirium - _
                                        [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                                        Nichts ist unmöglich? Doch!
                                        Heute schon gegökt?
                                        1. Hi Patrick,

                                          Und ich bin reingefallen.  :-)
                                          Und kein anderer hat irgendwas angemerkt ;)

                                          Der Tag ist ja noch Jung. ;-)

                                          ja mit verdena kann's ja nichts verden ;)

                                          Var auch nichts. :)

                                          Wenn mir heute danach ist, bastle ich noch an den Beispielen...

                                          Wie können wir deine Laune zum Positiven stimmen?  *G

                                          Ich mach erst mal Feierabend für Heute, mein Kopf Qualmt schon wieder und die Augen brennen.

                                          Gute Nacht und Grüße aus H im R,
                                          Engin

                                          1. Hallo Engin!

                                            Und ich bin reingefallen.  :-)
                                            Und kein anderer hat irgendwas angemerkt ;)
                                            Der Tag ist ja noch Jung. ;-)

                                            Jetzt nicht mehr so jung, scheint dennoch niemand zu interessieren... Hey, wir sind also alleine, und können über alle herziehen, keiner wird's merken ;)

                                            zieh her... ;)

                                            Wenn mir heute danach ist, bastle ich noch an den Beispielen...

                                            Tadaa...

                                            Viele Grüße aus Frankfurt/Main,
                                            Patrick

                                            --

                                            _ - jenseits vom delirium - _
                                            [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                                            Nichts ist unmöglich? Doch!
                                            Heute schon gegökt?
                                            1. Hi Patrick,

                                              Und ich bin reingefallen.  :-)
                                              Und kein anderer hat irgendwas angemerkt ;)
                                              Der Tag ist ja noch Jung. ;-)
                                              Jetzt nicht mehr so jung, scheint dennoch niemand zu interessieren... Hey, wir sind also alleine, und können über alle herziehen, keiner wird's merken ;)

                                              Tja, hier ist wohl jeder auf sich SELF gestellt. :-)

                                              zieh her... ;)

                                              Nach Frankfurt? Wär mal ne Maßnahme. *g

                                              Hab gehört, in den Internet Cafe´s da unten kostet ne Stunde ein Paar Euros,
                                              wenn ich dort soviele Kunden hätte wie hier wäre ich ein gemachter Mann. :-)

                                              Wenn mir heute danach ist, bastle ich noch an den Beispielen...
                                              Tadaa...

                                              Das sieht sehr schön aus, mal sehen, ob ich das ein wenig umgeschrieben krieg.

                                              Ich hab das letztens schon versucht, kam aber nicht Weiter

                                                
                                                             var buttons = document.getElementsByTagName('input');  
                                                             for (var i = 0; i < buttons.length; i++) {  
                                                             if (buttons[i].className == 'change') {  
                                                                    buttons[i].onclick = function() {
                                              

                                              Wie kann ich denn statt den buttons <option> Felder aus einer Select-Box ansprechen?

                                              Ich hatte probiert, alle buttons mit select oder option auszutauschen, ging aber nicht.

                                                
                                                             var options = document.getElementsByTagName('option');  
                                                             for (var i = 0; i < options.length; i++) {  
                                                             ...
                                              

                                              Ansonsten Klasse arbeit.

                                              Grüße aus H im R,
                                              Engin

                                              1. hi $name,

                                                Hab gehört, in den Internet Cafe´s da unten kostet ne Stunde ein Paar Euros,
                                                wenn ich dort soviele Kunden hätte wie hier wäre ich ein gemachter Mann. :-)

                                                kommt auf den stadteil an, hier wo ich wohne kostet die stunde 1 euro.

                                                gruss
                                                shadow

                                                --
                                                Programmers don´t die, they GOSUB without RETURN.
                                                Quelle: unbekannt
                                                1. Hi Shadowcrow,

                                                  kommt auf den stadteil an, hier wo ich wohne kostet die stunde 1 euro.

                                                  Du kommst auch aus Frankfurt?

                                                  Mir hatte ein bekannter erzählt, da würde es zw. 3-5€ kosten, vielleicht meinte er früher,
                                                  da waren die preise im Pott auch noch recht hoch. Bei uns kostet es auch 1€, aber das auch seit unserer
                                                  Preissenkung die mit dem Verbot der Wettvermittlung eingetreten ist. Leider.

                                                  Grüße aus H im R,
                                                  Engin

                                                  1. hi $name,

                                                    Hi Shadowcrow,

                                                    kommt auf den stadteil an, hier wo ich wohne kostet die stunde 1 euro.

                                                    Du kommst auch aus Frankfurt?

                                                    yep

                                                    Mir hatte ein bekannter erzählt, da würde es zw. 3-5€ kosten, vielleicht meinte er früher,

                                                    ja früher waren die preise höher, aber es gibt immer noch welche wo die stunde 3 öre kostet. durchschnitt ist so zwischen 1-2 öre.

                                                    da waren die preise im Pott auch noch recht hoch. Bei uns kostet es auch 1€, aber das auch seit unserer
                                                    Preissenkung die mit dem Verbot der Wettvermittlung eingetreten ist. Leider.

                                                    :-(

                                                    gruss
                                                    shadow

                                                    --
                                                    Programmers don´t die, they GOSUB without RETURN.
                                                    Quelle: unbekannt
                                            2. Hi Patrick,

                                              ich muss mir unbedingt angewöhnen, erst die Arbeit zu machen und dann zu posten. *g

                                              Ich beziehe mich auf die <option> frage unter mir, habe es doch gebacken gekriegt. :-))

                                              Nur eine kleine Winzigkeit ist noch unschön, das weight. Ich hab die funktion jetzt so umgeschrieben,
                                              das die Auswahl in <select><option> übernommen wird, das <option> taugt aber nur bei
                                              Schriftart und Schriftgrösse, für bold und normal will ich inputs benutzen, krieg aber beide "<option>&<input>" nicht
                                              unter einen Hut, wie stell ich das an?

                                              ~~~javascript <script type="text/javascript">
                                                       window.onload = function() {
                                                             var options = document.getElementsByTagName('option');
                                                             var buttons = document.getElementsByTagName('input');

                                              for (var i = 0; i < options.length; i++) {
                                                                if (options[i].className == 'ffchange') {
                                                         options[i].onclick = function() {
                                                                           font = this.value;
                                                                           chFont.setFont(font,weight,size);
                                                                       }
                                                                }
                                                                if (buttons[i].className == 'fwchange') {
                                                         buttonns[i].onclick = function() {
                                                                           weight = this.value == "Fettschrift" ? 'bold' : 'normal';
                                                                           chFont.setFont(font,weight,size);
                                                                       }
                                                                }
                                                                if (options[i].className == 'fschange') {
                                                         options[i].onclick = function() {
                                                                           size = this.value;
                                                                           chFont.setFont(font,weight,size);
                                                                       }
                                                                }
                                                             }
                                               }
                                                      </script>

                                                
                                              So geht es nicht.  
                                                
                                              [code lang=javascript]  
                                              Grüße aus H im R,  
                                              Engin  
                                              
                                              -- 
                                              [Von wegen "Geld wächst nicht auf Bäumen"!](http://nimmet.de/nimmet-dateien/GeldAufBaum)  
                                                
                                              ![](http://nimmet.de/nimmet-bilder/valigator.gif)[Der Valligator](http://old.atomic-eggs.com/old_forum/messages/237.html#a1)  
                                                
                                              ["Computer sagt Nein"](http://www.comedycentral.de/index.php/Video/Detail/vid/541168/playerMode/fullscreen)
                                              
                                              1. ich muss mir unbedingt angewöhnen, erst die Arbeit zu machen und dann zu posten. *g

                                                Ihr solltet hier auch mal klar Schiff machen und entweder den Titel anpassen oder einfach mal einen neuen Zweig oder gar Thread aufmachen.

                                                Ich beziehe mich auf die <option> frage unter mir, habe es doch gebacken gekriegt. :-))

                                                [code lang=javascript] <script type="text/javascript">
                                                         window.onload = function() {
                                                               var options = document.getElementsByTagName('option');
                                                               var buttons = document.getElementsByTagName('input');

                                                for (var i = 0; i < options.length; i++) {
                                                                  if (options[i].className == 'ffchange') {
                                                           options[i].onclick = function() {

                                                options kennen kein onclick Event. Das macht FF falsch, im IE funktioniert das hier nicht. Du musst mit dem onchange Event, des Select Element arbeiten.

                                                font = this.value;
                                                                             chFont.setFont(font,weight,size);

                                                }
                                                                  }
                                                                  if (buttons[i].className == 'fwchange') {

                                                Du kannst nicht das Array buttons und options in einer Schleife durchlaufen,  oder existieren zufällig von beiden exakt die gleiche Anzahl?
                                                Darauf würde ich nicht nicht verlassen.

                                                Im Prinzip müßtest du mit elements  weiterkommen, dazu müssen halt nur deine Element in einem Formular stehen, dann könntest du die schleife ungefähr so nutzen wie du es willst (ausser dem onclick Event auf Options).

                                                Struppi.

                                              2. Hallo Engin!

                                                krieg aber beide "<option>&<input>" nicht
                                                unter einen Hut,

                                                Wo ist das Problem?

                                                [code lang=javascript] <script type="text/javascript">
                                                         window.onload = function() {
                                                               var options = document.getElementsByTagName('option');
                                                               var buttons = document.getElementsByTagName('input');

                                                for (var i = 0; i < options.length; i++) {
                                                                  if (options[i].className == 'ffchange') {
                                                           options[i].onclick = function() {
                                                                             font = this.value;
                                                                             chFont.setFont(font,weight,size);
                                                                         }
                                                                  }

                                                Sprich lieber das select-Element an, wie Struppi es getan hat. Schau im geänderten Beispiel den Unterschied zu vorher (habe ich kommentiert). Dort geht Buttons _ und _ Liste.

                                                So geht es nicht.

                                                Struppis Spruch. ;)

                                                Viele Grüße aus Frankfurt/Main,
                                                Patrick

                                                --

                                                _ - jenseits vom delirium - _
                                                [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                                                Nichts ist unmöglich? Doch!
                                                Heute schon gegökt?
                                                1. So geht es nicht.

                                                  Struppis Spruch. ;)

                                                  Javascript ist toll!

                                                  Struppi.

                                                  1. Hallo Struppi!

                                                    Struppis Spruch. ;)
                                                    Javascript ist toll!

                                                    Ich meinte aber den anderen ;)

                                                    Viele Grüße aus Frankfurt/Main,
                                                    Patrick

                                                    --

                                                    _ - jenseits vom delirium - _
                                                    [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                                                    Nichts ist unmöglich? Doch!
                                                    Heute schon gegökt?
                                                    1. Hi Patrick, hi Struppi!

                                                      Erstmal vielen Dank Patrick! Du glaubst garnicht wieviel Gehirnzellen in den letzten Tagen für
                                                      dieses bißchen Code draufgegangen ist, und dann hab ich es nichtmal gebacken gekriegt.

                                                      Struppis Spruch. ;)
                                                      Javascript ist toll!
                                                      Ich meinte aber den anderen ;)

                                                      Dann machst du irgendwas falsch!©

                                                      Hab das jetzt wie du gemacht hast übernommen, hab noch die size in eine select Box gepackt,
                                                      nur, warum funktionieren jetzt angaben wie onclick="this.form.submit()" & onchange="this.form.submit()" nicht mehr?

                                                      Grüße aus H im R,
                                                      Engin

                                                      1. Hab das jetzt wie du gemacht hast übernommen, hab noch die size in eine select Box gepackt,
                                                        nur, warum funktionieren jetzt angaben wie onclick="this.form.submit()" & onchange="this.form.submit()" nicht mehr?

                                                        Keine Ahnung, du machst irgendwas falsch ;-)

                                                        Struppi.

                                                      2. Hallo Engin!

                                                        Struppis Spruch. ;)
                                                        Javascript ist toll!
                                                        Ich meinte aber den anderen ;)
                                                        Dann machst du irgendwas falsch!© by Struppi ;)

                                                        Genau den Spruch meinte ich!

                                                        Du hast es geschafft, angekommen vor wenigen Monaten mit gar keiner Ahnung von einem Computer, in kurzer Zeit tolle Seiten zu basteln. Nimm Dir bitte auch etwas Zeit, und zieh Dir den JavaScript-Kapitel von SELFHTML rein. Denn im Moment probierst Du nur herum, ohne wirklich zu wissen, was passiert.

                                                        nur, warum funktionieren jetzt angaben wie onclick="this.form.submit()" & onchange="this.form.submit()" nicht mehr?

                                                        Trennung von HTML und Code. Es sind keine Event-Handler mehr im HTML nötig, sie stehen im JavaScript-Code.

                                                        Aber was willst Du noch submitten und eine Seite neu laden, wenn jetzt doch alles beim Client passiert? Das ist das, was ich überhaupt nicht verstehe. Wenn Du ohnehin die Seite durch ein Submit neu aufrufst, kannst Du die ganze Geschichte serverseitig lösen, brauchst kein JS mehr, und erreichst somit alle User (also auch diejenigen, die JS dekativiert haben).

                                                        Dieses doppeltgemoppelte ist IMHO völlig sinnlos. Schau Dir mal meine Galerien an: Sie funktionieren prima mit JavaScript. Wer kein JS aktiv hat, bekommt eine serverseitige Lösung serviert. Aber mir wäre nie eingefallen, Besucherclients, die mit JS ohne jegliches Neuladen die Bilder austauschen können, ein Neuladen der Seiten aufzuzwingen.

                                                        Ich hab's im Thread schon mal gesagt: JavaScript, wenn es beim Client passieren soll, wenn die Seite eh neu aufgerufen werden soll, dann Serverseitig. Zumal Du kannst PHP und Perl einsetzen, Webmaster, die beides nicht haben, müssen sich auf JS beschränken.

                                                        Viele Grüße aus Frankfurt/Main,
                                                        Patrick

                                                        --

                                                        _ - jenseits vom delirium - _
                                                        [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                                                        Nichts ist unmöglich? Doch!
                                                        Heute schon gegökt?
                                                        1. Hi Patrick,

                                                          Nimm Dir bitte auch etwas Zeit, und zieh Dir den JavaScript-Kapitel von SELFHTML rein. Denn im Moment probierst Du nur herum, ohne wirklich zu wissen, was passiert.

                                                          Glaub mir, ich würde nichts lieber tun als das, aber seit einigen Wochen haben wir jetzt
                                                          auch im I-Net Café Nachtbetrieb und hier sind Kunden bis Morgens 6-7 Uhr, in den letzten
                                                          Tagen habe ich es Teilweise nicht mal geschafft, 15 Minuten lang in Ruhe einen Artikel zu lesen.
                                                          Da kommt der eine und braucht das und der nächste jenes...

                                                          Aber was willst Du noch submitten und eine Seite neu laden, wenn jetzt doch alles beim Client passiert? Das ist das, was ich überhaupt nicht verstehe.

                                                          Ich hab´s irgendwie mit verkomplizieren. :-)
                                                          Ich möchte nach auswahl von font, size oder weight das ausgewählte in Schriftlicher Form wieder
                                                          ausgeben, also mit

                                                          <p><script type="text/javascript">  
                                                          document.write('-&gt; ', window.name);  
                                                          </script></p>
                                                          

                                                          mit this.form.submit() klappt das, nur weiss ich nicht, (frage) wird die Seite dadurch
                                                          nur beim Client gerefresht oder vom Server neu angefordert?

                                                          Grüße aus H im R,
                                                          Engin

                                                          1. Hallo Engin!

                                                            Ich hab´s irgendwie mit verkomplizieren. :-)

                                                            Hm, ich dachte, ich wär' so ;)

                                                            Ich möchte nach auswahl von font, size oder weight das ausgewählte in Schriftlicher Form wieder
                                                            ausgeben, also mit

                                                            <p><script type="text/javascript">

                                                            document.write('-&gt; ', window.name);
                                                            </script></p>

                                                              
                                                            Ja das ist doch OK, das kannst Du machen.  
                                                              
                                                            
                                                            >   
                                                            > mit this.form.submit() klappt das,  
                                                              
                                                            Schmeiß die form-Elemente 'raus, Sakra! Habe ich welche in meinem Beispiel? Nein, nur die inputs und die Liste.  
                                                              
                                                            
                                                            > nur weiss ich nicht, (frage) wird die Seite dadurch  
                                                            > nur beim Client gerefresht oder vom Server neu angefordert?  
                                                              
                                                            Es geht ein Request an den Server, wenn sich nichts geändert hat, wird der Browser die Seite lediglich refreshen, dennoch ist es eine unötige Anfrage an den Server (schau mal Deine Access Analysis - access.pl).  
                                                              
                                                              
                                                            Aus Deinem Quelltext von songtext.php:  
                                                              
                                                            ~~~javascript
                                                              
                                                             function setWeight(weight) {  
                                                             document.getElementById("song_text").style.fontWeight=weight;  
                                                                }
                                                            

                                                            Warum das hier? setFont macht doch alles: family, weight und size ändern, diese zusätzliche Funktion brauchst Du ebenso wenig wie das hier:

                                                              
                                                            <input type="button" onclick="setWeight('bold'), document.cookie = 'fonweit=bold;';" value="Fett" />  
                                                            <input type="button" onclick="setWeight('normal'), document.cookie = 'fonweit=normal;';" value="Normal" />
                                                            

                                                            onclick raus, den inputs die Klasse fwchange verpassen, das ist doch die Bedingung, dass was passiert:

                                                              
                                                                              if (options[i].className == 'fwchange') {  
                                                                       options[i].onclick = function() {  
                                                                                         weight = this.value == "Fettschrift" ? 'bold' : 'normal';  
                                                                                         chFont.setFont(font,weight,size);  
                                                                                     }
                                                            

                                                            Nur Dein einer Button ist beschriftet nur mit "Fett", also musst Du das hier ändern:

                                                              
                                                                                         weight = this.value == "Fett" ? 'bold' : 'normal';  
                                                            
                                                            

                                                            Das war sicher der Grund, warum Du die setWeight-Funktion hinzugefügt hast, oder?

                                                            Ich mache eine .txt-Kopie der Datei mit Zeilennummern, und wenn mir danach ist (sagte ich das nicht schon?), poste ich eine Erklärung dazu. Eigentlich wollte ich an meinem Nachfolge-Skript für makenav.pl arbeiten (mit Modul und so...) ;)

                                                            Viele Grüße aus Frankfurt/Main,
                                                            Patrick

                                                            --

                                                            _ - jenseits vom delirium - _
                                                            [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                                                            Nichts ist unmöglich? Doch!
                                                            Heute schon gegökt?
                                                            1. !!!elf

                                                              if (options[i].className == 'fwchange') {
                                                                         options[i].onclick = function() {
                                                                                           weight = this.value == "Fettschrift" ? 'bold' : 'normal';
                                                                                           chFont.setFont(font,weight,size);
                                                                                       }

                                                                
                                                              Das sehe ich erst jetzt... Struppi hat Dir doch gesagt, dass es so falsch ist. Schau Dir den [Quelltext vom Beispiel](http://www.atomic-eggs.com/z_testdir/empfaengerseite4.html) doch mal genau an:  
                                                                
                                                              ~~~javascript
                                                                
                                                                                      if (buttons[i].className == 'fwchange') {  
                                                                            buttons[i].onclick = function() {  
                                                                                              weight = this.value == "Fettschrift" ? 'bold' : 'normal';  
                                                                                              chFont.setFont(font,weight,size);  
                                                                                          }  
                                                                                      }
                                                              

                                                              Die Auswahllisten sprichst Du über das select-Element an, wie in meinem Beispiel.

                                                              Viele Grüße aus Frankfurt/Main,
                                                              Patrick

                                                              --

                                                              _ - jenseits vom delirium - _
                                                              [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                                                              Nichts ist unmöglich? Doch!
                                                              Heute schon gegökt?
                                                            2. Hi Patrick,

                                                              Ich hab´s irgendwie mit verkomplizieren. :-)
                                                              Hm, ich dachte, ich wär' so ;)

                                                              Seelen verwandt?  :-)

                                                              <p><script type="text/javascript">

                                                              document.write('-&gt; ', window.name);
                                                              </script></p>

                                                              
                                                              > Ja das ist doch OK, das kannst Du machen.  
                                                                
                                                              Mein Globales Problem hier ist ja, das das Ergebnis erst nach nem Refreshen angezeigt wird,  
                                                              und da ich unter [Ticks](http://de.wikipedia.org/wiki/Zwangsst%C3%B6rung) leide[1], fühle ich mich gezwungen das so zu machen.  :)  
                                                                
                                                              
                                                              > Schmeiß die form-Elemente 'raus, Sakra! nur die inputs und die Liste.  
                                                                
                                                              Ist passiert.  
                                                                
                                                              
                                                              > dennoch ist es eine unötige Anfrage an den Server (schau mal Deine Access Analysis - access.pl).  
                                                                
                                                              Vor lauter Script wahn komm ich nicht mal dazu, zumal meine Neue Domain bei allinkl ist, da funzt[TM] access.pl nicht.  
                                                                
                                                              
                                                              > Aus Deinem Quelltext von songtext.php:  
                                                                
                                                              Die neueste Version war noch garnicht On, hab ich graade ausgetauscht, jetzt ist die Richtige Version drauf.  
                                                                
                                                              
                                                              > onclick raus, den inputs die Klasse fwchange verpassen, das ist doch die Bedingung, dass was passiert:  
                                                                
                                                              Das war noch die "alte" Version, die upgedatete Version sieht besser aus.  
                                                                
                                                                
                                                              
                                                              > ~~~javascript
                                                                
                                                              
                                                              >                              weight = this.value == "Fett" ? 'bold' : 'normal';
                                                              
                                                              

                                                              Das war sicher der Grund, warum Du die setWeight-Funktion hinzugefügt hast, oder?

                                                              ja, daran lag das, das hatte ich aber selber schon gefunden. :-)

                                                              Ich mache eine .txt-Kopie der Datei mit Zeilennummern, und wenn mir danach ist (sagte ich das nicht schon?), poste ich eine Erklärung dazu. Eigentlich wollte ich an meinem Nachfolge-Skript für makenav.pl arbeiten (mit Modul und so...) ;)

                                                              Du hast Recht, ich lass das mit dem refreshen, ich werde mich meinen Ticks stellen.
                                                              Also nur für mich brauchst du keine .txt anfertigen, wenn du aber das Script zum download anbieten willst wäre es Sinnvoll.

                                                              Danke dir jedenfalls für deine Mühen.

                                                              Gute Nacht und Grüße aus H im R, ich mach Feierabend.
                                                              Engin
                                                              [1] ansonsten geht es mir gut :-))

                                                              1. Hallo Engin!

                                                                <p><script type="text/javascript">

                                                                document.write('-&gt; ', window.name);
                                                                </script></p>

                                                                
                                                                > > Ja das ist doch OK, das kannst Du machen.  
                                                                >   
                                                                > Mein Globales Problem hier ist ja, das das Ergebnis erst nach nem Refreshen angezeigt wird,  
                                                                  
                                                                Klar, document.write greift beim Laden. Aber es gibt andere Möglichkeiten, mit JavaScript Text einer bereits geladener Seite zu ändern oder hinzu zu fügen (Stichwort: innerHTML, firstChild, appendChild, etc... mach Dich mal schlau!)  
                                                                  
                                                                
                                                                > > Schmeiß die form-Elemente 'raus, Sakra! nur die inputs und die Liste.  
                                                                > Ist passiert.  
                                                                  
                                                                Na endlich!  
                                                                  
                                                                  
                                                                
                                                                > Vor lauter Script wahn komm ich nicht mal dazu, zumal meine Neue Domain bei allinkl ist, da funzt[TM] access.pl nicht.  
                                                                  
                                                                Da werden die Zeilen der access.log wohl anders aussehen, schick' mal einen Auschnitt rüber.  
                                                                  
                                                                
                                                                > Also nur für mich brauchst du keine .txt anfertigen, wenn du aber das Script zum download anbieten willst wäre es Sinnvoll.  
                                                                  
                                                                Die .txt mit den Zeilennummern ist schon fertig (Perl-5Zeiler) ;) Für die Erläuterungen, schaunmerma. Wenn sich hier Leute melden, die gerne eine hätten, mache ich das dann auch.  
                                                                  
                                                                  
                                                                Viele Grüße aus Frankfurt/Main,  
                                                                Patrick
                                                                
                                                                -- 
                                                                ![](http://www.atomic-eggs.com/fuernA.jpg)  
                                                                  
                                                                \_ - jenseits vom delirium - \_  
                                                                  
                                                                [[link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash](http://www.atomic-eggs.com/)]  
                                                                Nichts ist unmöglich? [Doch!](http://www.atomic-eggs.com/cwi/cwi_4.shtml)  
                                                                Heute schon ge[gök](http://goek.atomic-eggs.com/goek_goek.html)t?
                                                                
                                                                1. Hi Patrick,

                                                                  Aber es gibt andere Möglichkeiten, mit JavaScript Text einer bereits geladener Seite zu ändern oder hinzu zu fügen (Stichwort: innerHTML, firstChild, appendChild, etc... mach Dich mal schlau!)

                                                                  Da habe ich Heut Nacht ja wieder was vor mir.   :-)

                                                                  Da werden die Zeilen der access.log wohl anders aussehen, schick' mal einen Auschnitt rüber.

                                                                  Ist geschieht.

                                                                  Die .txt mit den Zeilennummern ist schon fertig (Perl-5Zeiler) ;) Für die Erläuterungen, schaunmerma. Wenn sich hier Leute melden, die gerne eine hätten, mache ich das dann auch.

                                                                  Ich glaube nicht, das hier Leute, die es interessieren würde, noch mitlesen[1]. :-)

                                                                  Jetzt ist aber wirklich Feierabend, der Laden ist schon wieder voll und ich bin am Ende.

                                                                  Grüße aus H im R,
                                                                  Engin
                                                                  [1] Die, die noch mitlesen können es selber

                                                                2. Hi Patrick,

                                                                  Die .txt mit den Zeilennummern ist schon fertig (Perl-5Zeiler) ;)

                                                                  Der 5zeiler würde mich interessieren. :-)

                                                                  Ach, wenn ich schon mal hier bin...Ich hab da ein Problem, weiss aber nicht so Recht,
                                                                  woher das kommt...Wahrscheinlich mache ich was falsch ©by Struppi. :-)

                                                                  Ich hab meine Seite um diese Navigation erweitert,
                                                                  die benötigt Javascript für den IE,
                                                                  wenn ich mit dem IE auf der Seite bin, wo die Schriftformatieren Geschichte ist
                                                                  funzt[TM] das hover Script nicht mehr.

                                                                  Können sich beide Scripts nicht vertragen?

                                                                  http://my-songtexte.de/songtext.php

                                                                  Grüße aus H im R,
                                                                  Engin

                                                                  1. Hallo Engin!

                                                                    Der 5zeiler würde mich interessieren. :-)

                                                                    Für Datei mit Länge < 1000 Zeilen:

                                                                      
                                                                    open INPUT, "/path/to/inputfile.html" or die "Can't open file: $!";  
                                                                    open OUTPUT, "/path/to/outputfile.txt" or die "Can't open file: $!";  
                                                                    my $count = 1;  
                                                                    while (<INPUT>) {  
                                                                       $count = $count < 10 ? "  ".$count : $count < 100 ? " ".$count : $count;  
                                                                       print OUTPUT "$count: $_";  
                                                                       $count++;  
                                                                    }
                                                                    

                                                                    Ups, sind ja drei Zeilen mehr... ;)

                                                                    Ach, wenn ich schon mal hier bin...Ich hab da ein Problem, weiss aber nicht so Recht,
                                                                    woher das kommt...Wahrscheinlich mache ich was falsch ©by Struppi. :-)

                                                                    Sicher... ;)

                                                                    Ich hab meine Seite um diese Navigation erweitert,
                                                                    die benötigt Javascript für den IE,
                                                                    wenn ich mit dem IE auf der Seite bin, wo die Schriftformatieren Geschichte ist
                                                                    funzt[TM] das hover Script nicht mehr.

                                                                    Auf die Schnelle, nach kurzem Überblick des Skripts für IE:

                                                                    ein window.onload überschreibt den anderen. Du kannst das SELFHTML-Skript »as is« übernehmen, schreibst am Besten alle Funtkionen oberhalb des bisherigen Codes im <script>-Bereich, löschst die Zeile:

                                                                    window.onload = hoverIE;

                                                                    und fügst im der window.onload-Funktion des bisherigen Schriftändern-Skripts einfach irgendwo hoverIE(); hinzu. Müsste (ungetestet) funzen.

                                                                    Können sich beide Scripts nicht vertragen?

                                                                    Als ich angefangen hatte, mit Webseiten basteln, JS und Konsorten, hatte mir ein damals hier sehr aktiver Forumer (die alten Hasen werden sich an Roland Bluethgen aka Calocybe erinnern) ein Skript für die Zeiterfassung von EggSweeper geschrieben. Ich hatte versucht, das Skript in einer anderen Seite einzubauen, auf welcher ich bereits JavaScript einsetzte. Nichts ging mehr, bis ich feststellte, dass wir in den Skripten identische Variablennamen hatten ;)

                                                                    Ein anderer Forumer fügte seinen Variablen immer seine Initialen zu, an sich keine schlechte Idee... (var pa_font; var pa_size; <- 1,73 m *GG*) ;)

                                                                    Viele Grüße aus Frankfurt/Main,
                                                                    Patrick, macht 'ne kleine Pause und packt seinen neuen Laptop aus (endlich!)

                                                                    --

                                                                    _ - jenseits vom delirium - _
                                                                    [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                                                                    Nichts ist unmöglich? Doch!
                                                                    Heute schon gegökt?
                                                                    1. Hallo Patrick!

                                                                      open INPUT, "/path/to/inputfile.html" or die "Can't open file: $!";
                                                                      open OUTPUT, ">>/path/to/outputfile.txt" or die "Can't open file: $!";

                                                                      #             ^^ Die wollen wir ja beschreiben!!!

                                                                      my $count = 1;
                                                                      while (<INPUT>) {
                                                                         $count = $count < 10 ? "  ".$count : $count < 100 ? " ".$count : $count;
                                                                         print OUTPUT "$count: $_";
                                                                         $count++;
                                                                      }

                                                                        
                                                                      Viele Grüße aus Frankfurt/Main,  
                                                                      Patrick
                                                                      
                                                                      -- 
                                                                      ![](http://www.atomic-eggs.com/fuernA.jpg)  
                                                                        
                                                                      \_ - jenseits vom delirium - \_  
                                                                        
                                                                      [[link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash](http://www.atomic-eggs.com/)]  
                                                                      Nichts ist unmöglich? [Doch!](http://www.atomic-eggs.com/cwi/cwi_4.shtml)  
                                                                      Heute schon ge[gök](http://goek.atomic-eggs.com/goek_goek.html)t?
                                                                      
                                                                    2. Hi Patrick,

                                                                      open INPUT, "/path/to/inputfile.html" or die "Can't open file: $!";
                                                                      open OUTPUT, "/path/to/outputfile.txt" or die "Can't open file: $!";
                                                                      my $count = 1;
                                                                      while (<INPUT>) {
                                                                         $count = $count < 10 ? "  ".$count : $count < 100 ? " ".$count : $count;
                                                                         print OUTPUT "$count: $_";
                                                                         $count++;
                                                                      }

                                                                      
                                                                      > Ups, sind ja drei Zeilen mehr... ;)  
                                                                        
                                                                      das wird heute Abend getestet, das kommt per drag and drop ins cmd?  
                                                                        
                                                                      
                                                                      > bisherigen Codes im <script>-Bereich, löschst die Zeile:  
                                                                      > `  window.onload = hoverIE;`{:.language-javascript}  
                                                                      > und fügst im der window.onload-Funktion des bisherigen Schriftändern-Skripts einfach irgendwo `hoverIE();`{:.language-javascript} hinzu. Müsste (ungetestet) funzen.  
                                                                        
                                                                      Jetzt habsch den Salat, das Formatieren-script binde ich nur auf der einen Seite ein,  
                                                                      alle anderen Seiten haben keine ID namens 'song\_text', mit deinem Vorschlag funzt es im IE,  
                                                                      aber dann streikt der FF (hoverIE() is not defined) :( Ich werd noch bekloppt...wenn ich es nicht schon bin \*AUGENZUCK   :-)  
                                                                        
                                                                      
                                                                      > Ein anderer Forumer fügte seinen Variablen immer seine Initialen zu, an sich keine schlechte Idee... (var pa\_font; var pa\_size; <- 1,73 m \*GG\*) ;)  
                                                                        
                                                                      Wenn ich verstanden hab, wie ich mit JS variablen mach, dann ist das ne gute Idee.  
                                                                        
                                                                      
                                                                      > Patrick, macht 'ne kleine Pause und packt seinen neuen Laptop aus (endlich!)  
                                                                        
                                                                      Oi, Neidisch Guck  :-) Bei mir wirds auch mal Zeit für nen neuen Rechner, meine 512MB Dell Power halten langsam nicht mehr Stand wenn ich hier am machen bin.  
                                                                        
                                                                      Grüße aus H im R,  
                                                                      Engin  
                                                                      Juhu - Feierabend - Gute Nacht
                                                                      
                                                                      -- 
                                                                      [Von wegen "Geld wächst nicht auf Bäumen"!](http://nimmet.de/nimmet-dateien/GeldAufBaum)  
                                                                        
                                                                      ![](http://nimmet.de/nimmet-bilder/valigator.gif)[Der Valligator](http://old.atomic-eggs.com/old_forum/messages/237.html#a1)  
                                                                        
                                                                      ["Computer sagt Nein"](http://www.comedycentral.de/index.php/Video/Detail/vid/541168/playerMode/fullscreen)
                                                                      
                                                                      1. Hallo Engin!

                                                                        das wird heute Abend getestet, das kommt per drag and drop ins cmd?

                                                                        Die korrigierte Fassung kopierst Du in einer Textdatei, passt die Dateinamen an, und per copy&paste (nicht drag&drop) in die Konsole. Achte drauf, welches Verzeichnis angezeigt wird, wenn Du cmd.exe aufrufst, in der Regel steht bei XP:

                                                                        C:\Dokumente und Einstellungen\Username

                                                                        Am Einfachsten ist, in den OPEN-Befehle die losen Dateinamen zu schreiben (ohne Pfad) und im Skript zu Beginn noch eine Zeile hinzuzufügen:

                                                                          
                                                                        chdir "K:/webdokumente/engin/klickandsurf/wasnochimmer/html-files";
                                                                        

                                                                        Jetzt habsch den Salat, das Formatieren-script binde ich nur auf der einen Seite ein,
                                                                        alle anderen Seiten haben keine ID namens 'song_text', mit deinem Vorschlag funzt es im IE,
                                                                        aber dann streikt der FF (hoverIE() is not defined) :( Ich werd noch bekloppt...wenn ich es nicht schon bin *AUGENZUCK   :-)

                                                                        Klar, Du musst die Abfrage, die zu Beginn des SELFHMTL-Skripts, auch noch im window.onload der Seite mit dem Skript für die Schriftänderung übernehmen!

                                                                        if(window.navigator.systemLanguage && !window.navigator.language) {
                                                                          hoverIE();
                                                                        }

                                                                        Auf allen anderen Seiten übernimmst Du das SELFHTML-Skript so, wie es ist, da brauchst Du nicht die window.onload-Funktion vom anderen Skript, oder verstehe ich etwas falsch?

                                                                        Oi, Neidisch Guck  :-) Bei mir wirds auch mal Zeit für nen neuen Rechner, meine 512MB Dell Power halten langsam nicht mehr Stand wenn ich hier am machen bin.

                                                                        Habe immer noch nichts ausgepackt (wird was für Jacqueline sein, das Auspacken, die hole ich heute früher ab)... Ich kriege das mit den Sections und Subsections nicht so hin, wie ich das gerne hätte, im makenav-Nachfolgeskript...

                                                                        Viele Grüße aus Frankfurt/Main,
                                                                        Patrick

                                                                        --

                                                                        _ - jenseits vom delirium - _
                                                                        [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                                                                        Nichts ist unmöglich? Doch!
                                                                        Heute schon gegökt?
                                                                        1. Hi Patrick,

                                                                          Am Einfachsten ist, in den OPEN-Befehle die losen Dateinamen zu schreiben (ohne Pfad) und im Skript zu Beginn noch eine Zeile hinzuzufügen:

                                                                          chdir "K:/webdokumente/engin/klickandsurf/wasnochimmer/html-files";

                                                                            
                                                                          Das ist ja mal wieder Typisch, beim aller ersten Aufruf hatte es funktioniert,  
                                                                          zwar wurden die Zeilen nicht nummeriert aber in die OUTPUT file wurde was geschrieben,  
                                                                          das funzte aber irgendwie nur einmal, jetzt geht es nicht mehr, bzw. wird nichts mehr in die OUTPUT Seite eingetragen.  
                                                                            
                                                                          ~~~perl
                                                                            
                                                                           chdir "C:/xampp/anonymous/nimmet";  
                                                                           open INPUT, "suche.php" or die "Can't open file: $!";  
                                                                           open OUTPUT, "write.txt" or die "Can't open file: $!";  
                                                                           my $count = 1;  
                                                                           while (<INPUT>) {  
                                                                           $count = $count < 10 ? "  ".$count : $count < 100 ? " ".$count : $count;  
                                                                           print OUTPUT "$count: $_";  
                                                                           $count++;  
                                                                           }
                                                                          

                                                                          In der Konsole arbeitet das Script, trägt aber nichts in die write.txt ein.

                                                                          if(window.navigator.systemLanguage && !window.navigator.language) {
                                                                            hoverIE();
                                                                          }
                                                                          Auf allen anderen Seiten übernimmst Du das SELFHTML-Skript so, wie es ist, da brauchst Du nicht die window.onload-Funktion vom anderen Skript, oder verstehe ich etwas falsch?

                                                                          Nein, hast es richtig verstanden, so geht es. :-)

                                                                          Danke.

                                                                          Ich kriege das mit den Sections und Subsections nicht so hin, wie ich das gerne hätte, im makenav-Nachfolgeskript...

                                                                          Ich würd jetzt so gern sagen "zeig mal her" aber viel bringen wird das nicht. :-)

                                                                          Grüße aus H im R,
                                                                          Engin

                                                                          1. Hallo Engin!

                                                                            Das ist ja mal wieder Typisch, beim aller ersten Aufruf hatte es funktioniert,
                                                                            zwar wurden die Zeilen nicht nummeriert aber in die OUTPUT file wurde was geschrieben,

                                                                            Was denn, wenn nicht zeilenweise das Selbe plus vornedran Zeilennummern à la
                                                                               123:
                                                                               124:

                                                                            das funzte aber irgendwie nur einmal, jetzt geht es nicht mehr, bzw. wird nichts mehr in die OUTPUT Seite eingetragen.

                                                                            chdir "C:/xampp/anonymous/nimmet";
                                                                            open INPUT, "suche.php" or die "Can't open file: $!";
                                                                            open OUTPUT, "write.txt" or die "Can't open file: $!";
                                                                            my $count = 1;
                                                                            while (<INPUT>) {
                                                                            $count = $count < 10 ? "  ".$count : $count < 100 ? " ".$count : $count;
                                                                            print OUTPUT "$count: $_";
                                                                            $count++;
                                                                            }

                                                                              
                                                                            Du öffnest hier beide Dateien nur zum Lesen!... und hast meinen [Hinweis](https://forum.selfhtml.org/?t=166817&m=1089903), die [korrigierte Fassung](https://forum.selfhtml.org/?t=166817&m=1089846) zu nehmen, da ich im ersten Post einen Vergesslichkteisfehler hatte, ignoriert.  
                                                                              
                                                                            Der erste open öffnet die Quelldatei. Die soll ja nicht verändert werden, also reicht einfach, deren Namen anzugeben. Sie wird zum Lesen geöffnet. Hier hätte ich auch:  
                                                                              
                                                                            ~~~perl
                                                                              
                                                                            open INPUT, "<suche.php" or die "Can't open file: $!";  
                                                                            #            ^ Dieses Zeichen bedeutet: Zum »nur lesen« öffnen
                                                                            

                                                                            schreiben können.

                                                                            Der zweite open soll die Zieldatei öffnen UND beschreiben. Exisitiert keine, soll sie neu erstellt werden. Also wird das Perl mitgeteilt mit den Zeichen:

                                                                            Öffnen (evtl. neu erstellen) und Inhalt überschreiben oder

                                                                            Öffnen (evtl. neu erstellen) und Inhalt dranhängen

                                                                            Eigentlich hätte ich »>« benutzen sollen, denn um eine Textdatei mit Zeilennummern zu erstellen, sozusagen als Zeigekopie der Quelldatei, wollen wir ja keinen Inhalt an einer evtl. bereits bestehenden dranhängen: wenn z.B. festgestellt wird, dass man in der Quelldatei ein paar Zeilen HTML-Text vergessen hat, und man will die Zieldatei deswegen neu machen, sollte die Zieldatei ja überschrieben werden, und der neue Quellcode (in dem Fall wörtlich: Code von der Quelldatei *g*) nicht einfach unter dem alten erscheinen. Deswegen hier die korrigierteRE Fassung ;) :

                                                                              
                                                                             chdir "C:/xampp/anonymous/nimmet";  
                                                                             open INPUT, "suche.php" or die "Can't open file: $!";  
                                                                             open OUTPUT, ">write.txt" or die "Can't open file: $!";  
                                                                             my $count = 1;  
                                                                             while (<INPUT>) {  
                                                                             $count = $count < 10 ? "  ".$count : $count < 100 ? " ".$count : $count;  
                                                                             print OUTPUT "$count: $_";  
                                                                             $count++;  
                                                                             }
                                                                            

                                                                            Zu open: http://de.selfhtml.org/perl/funktionen/einausgabe.htm#open

                                                                            Ich kriege das mit den Sections und Subsections nicht so hin, wie ich das gerne hätte, im makenav-Nachfolgeskript...
                                                                            Ich würd jetzt so gern sagen "zeig mal her" aber viel bringen wird das nicht. :-)

                                                                            Ich habe eine rekursive Funktion geschrieben, die mir die Sections bis aus der hintersten Schublade rausholt. Ausgehend von einer verschachtelten Web-Struktur:

                                                                            start page (Root, Index-Seite - Startseite) <- oberste Ebene (level0)
                                                                              level1-A/page1 (1. Unterverz. von Root - Seite 1) <- level1
                                                                              level1-A/page2 (1. Unterverz. von Root - Seite 2) <- level1
                                                                                level1-A/level2-A/page1 (1. Unterverz. vom 1. Unterverz. -Seite 1) <- level2
                                                                              level1-B/page1 (2. Unterverz. von Root - Seite 1) <- level1
                                                                              level1-B/page2 <- level1
                                                                                level1-B/level2-A/page1 <- level2
                                                                                level1-B/level2-A/page2 <- level2
                                                                                  level1-B/level2-A/level3-A/page1 <- level3
                                                                            .
                                                                            .
                                                                            .

                                                                            also so was wie (in Verzeichnissen ausgedrückt am Beispiel eines Webs mypets.example.org):

                                                                            root (dir)
                                                                              index.html.................level0/page1
                                                                              katzen (dir)...............level1-A/
                                                                                index.html...............level1-A/page1
                                                                                muschi.html..............level1-A/page2
                                                                                muschikinder (dir).......level1-A/level2-A
                                                                                  kleineskaetzchen.html..level1-A/level2-A/page1
                                                                              hunde (dir)................level1-B/
                                                                                index.html...............level1-B/page1
                                                                                fifi.html................level1-B/page1
                                                                                fifikinder (dir).........level1-B/level2-A
                                                                                  hasso.html.............level1-B/level2-A/page1
                                                                                  bello.html.............level1-B/level2-A/page2
                                                                                  fifienkel (dir)........level1-B/level2-A/level3-A/
                                                                                    wuffel.html..........level1-B/level2-A/level3-A/page1
                                                                            .
                                                                            .
                                                                            .

                                                                            komme ich an allen Daten ran, nur einen »Pretty HTML-Output«, eine schön strukturierte, verschachtelte <ul>-Liste bekomme ich nicht, bzw. nicht hundertprozentig hin. Ich bekomme die Liste zwar valide, also richtig verschachtelt, nur mit den Einrückungen happerts:

                                                                            Startseite: index.html
                                                                            <ul>
                                                                              <li>katzen/index.html</li>
                                                                              <li>katzen/muschi.html
                                                                                <ul>
                                                                                  <li>kleineskaetzchen.html</li>
                                                                                </ul>
                                                                                </li> <-- hier sollte das </li> wieder 2 Leerzeichen nach vorne, das haut bei mir nicht richtig hin

                                                                            Struppi wird sagen, ich spinne, hauptsache der Output ist valide ;)

                                                                            Viele Grüße aus Frankfurt/Main,
                                                                            Patrick

                                                                            --

                                                                            _ - jenseits vom delirium - _
                                                                            [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                                                                            Nichts ist unmöglich? Doch!
                                                                            Heute schon gegökt?
                                                                            1. Hi Patrick,

                                                                              Du öffnest hier beide Dateien nur zum Lesen!... und hast meinen Hinweis, die korrigierte Fassung zu nehmen, da ich im ersten Post einen Vergesslichkteisfehler hatte, ignoriert.

                                                                              Nein, das hatte ich nicht ignoriet, ich dachte die >> sollen mich auf den Pfad aufmerksam machen. *g

                                                                              Danke.

                                                                              Der zweite open soll die Zieldatei öffnen UND beschreiben. Exisitiert keine, soll sie neu erstellt werden. Also wird das Perl mitgeteilt mit den Zeichen:

                                                                              Öffnen (evtl. neu erstellen) und Inhalt überschreiben oder

                                                                              Öffnen (evtl. neu erstellen) und Inhalt dranhängen

                                                                              Das sieht ja mal schick aus, was da hinten bei rauskommt.

                                                                              also so was wie (in Verzeichnissen ausgedrückt am Beispiel eines Webs mypets.example.org):

                                                                              root (dir)
                                                                                index.html.................level0/page1
                                                                                katzen (dir)...............level1-A/
                                                                                  index.html...............level1-A/page1
                                                                                  muschi.html..............level1-A/page2
                                                                                  muschikinder (dir).......level1-A/level2-A
                                                                                    kleineskaetzchen.html..level1-A/level2-A/page1
                                                                                hunde (dir)................level1-B/
                                                                                  index.html...............level1-B/page1
                                                                                  fifi.html................level1-B/page1
                                                                                  fifikinder (dir).........level1-B/level2-A
                                                                                    hasso.html.............level1-B/level2-A/page1
                                                                                    bello.html.............level1-B/level2-A/page2
                                                                                    fifienkel (dir)........level1-B/level2-A/level3-A/
                                                                                      wuffel.html..........level1-B/level2-A/level3-A/page1

                                                                              Ach sowas wie mein Geniales root.php. :-)

                                                                              Das schau ich mir Heute Abend nochmal an, Zeit, Feierabend zu machen.

                                                                              Gute Nacht und Grüße aus H im R,
                                                                              Engin

                                                                            2. Hi Patrick,

                                                                              da bin i wieder.  :-)

                                                                              Startseite: index.html
                                                                              <ul>
                                                                                <li>katzen/index.html</li>
                                                                                <li>katzen/muschi.html
                                                                                  <ul>
                                                                                    <li>kleineskaetzchen.html</li>
                                                                                  </ul>
                                                                                  </li> <-- hier sollte das </li> wieder 2 Leerzeichen nach vorne, das haut bei mir nicht richtig hin

                                                                              Warum nicht mittels CSS? Gib dem letzten </li> eine Klasse, das ganze wird ja eh Zeile für
                                                                              Zeile Generiert, aber einmal schreibst du es ja auf jedenfall, gezwungener maßen, und genau da verpasst du dem </li>
                                                                              klang heimlich eine Klasse und kannst mit ihm machen was du willst.  *G

                                                                              Oder hast du das schon probiert und funzt[TM] auch nicht?

                                                                              Struppi wird sagen, ich spinne, hauptsache der Output ist valide ;)

                                                                              Nö, er würd sagen, du machst irgendwas falsch.  *GG

                                                                              Grüße aus H im R,
                                                                              Engin

                                                                              1. Struppi wird sagen, ich spinne, hauptsache der Output ist valide ;)

                                                                                Nö, er würd sagen, du machst irgendwas falsch.  *GG

                                                                                Genau.

                                                                                Struppi.

                                                                                1. Hallo Struppi!

                                                                                  [Struppis Spruch]
                                                                                  Genau.

                                                                                  Nur wüßte ich gerne, wo - wobei der absolute Pretty-Output mir mittlerweile fast egal ist, immerhin sieht die Ausgabe wie folgt aus, also fast perfekt:

                                                                                  C:\>perl -w  
                                                                                  use strict;  
                                                                                  use MyWeb::Data;  
                                                                                    
                                                                                  my $webdata = new Data;  
                                                                                  $webdata->mySitemap('B');  
                                                                                  ^Z
                                                                                  

                                                                                  <ul>
                                                                                    <li><a href="/wae/wae_0.shtml">Willkommen auf Atomic Eggs</a>
                                                                                      <ul>
                                                                                        <li>/wae/level2/file.html</li>
                                                                                        <li>/wae/level2/impressum.html
                                                                                          <ul>
                                                                                            <li>/wae/level2/level3/kontaktform.html
                                                                                              <ul>
                                                                                                <li>/wae/level2/level3/level4/kontaktform.html
                                                                                                  <ul>
                                                                                                    <li>/wae/level2/level3/level4/level5/page1.html
                                                                                                      <ul>
                                                                                                        <li>/wae/level2/level3/level4/level5/level6/page1.html</li

                                                                                  <li>/wae/level2/level3/level4/level5/level6/page2.html</li

                                                                                  </ul>
                                                                                                    </li>
                                                                                                    </ul>     <-- Hier hackt's
                                                                                                  </li>
                                                                                                </ul>
                                                                                              </li>
                                                                                            </ul>
                                                                                          </li>
                                                                                        </ul>
                                                                                      </li>
                                                                                    <li><a href="/wae/wae_1.shtml">Informationen f³r Erstbesucher</a></li>
                                                                                    <li><a href="/wae/wae_2.shtml">Atomic Eggs - Sitemap</a>
                                                                                      <ul>
                                                                                        <li>/rubrikB/level2/file.html</li>
                                                                                      </ul>
                                                                                      </li>                    <-- Hier auch
                                                                                    <li><a href="/wae/wae_3.shtml">Sich zurecht finden auf Atomic Eggs</a></li>
                                                                                    <li><a href="/wae/wae_4.shtml">Impressum</a></li>
                                                                                    <li><a href="/wae/wae_5.shtml">▄ber den Autor</a></li>
                                                                                    <li><a href="/wae/wae_6.shtml">Atomic Eggs durchsuchen...</a></li>
                                                                                    <li><a href="/wae/wae_7.shtml">Suchstatistik</a></li>
                                                                                    <li><a href="/wae/wae_8.shtml">Das unm÷gliche Gõstebuch</a></li>
                                                                                    <li><a href="/wae/wae_9.shtml">FAQ</a></li>
                                                                                    <li><a href="/wae/wae_10.shtml">;-)</a></li>
                                                                                  </ul>

                                                                                  Generiert wird wie folgt:

                                                                                    
                                                                                  sub mySitemap {  
                                                                                    my $obj = shift;  
                                                                                    my $arg = shift;  
                                                                                    $arg eq "full" ? $obj->myFullmap() : $obj->mySectionmap($arg);  
                                                                                  }  
                                                                                    
                                                                                  sub myFullmap  {  
                                                                                    my $obj = shift;  
                                                                                    my $arg = shift;  
                                                                                    my %FILES = %{$obj->parseDataFile};  
                                                                                    my $start = shift @{$obj->getFileKeys(\%FILES)};     # Startseite rausholen, nur hier wird sie gebraucht  
                                                                                    print qq~STARTSEITE: <a href="$FILES{$start}{FILE_URL}">$FILES{$start}{TITLE}</a>\n~;  
                                                                                    $obj->mySectionmap('B');  
                                                                                    $obj->mySectionmap('C');  
                                                                                  }  
                                                                                    
                                                                                  sub mySectionmap {  
                                                                                    my $obj = shift;  
                                                                                    my $arg = shift;  
                                                                                    my %FILES = %{$obj->parseDataFile};  
                                                                                    my @fileKeys = @{$obj->getFileKeys(\%FILES)};  
                                                                                    my $start = shift @fileKeys;                                     # Die Startseite brauchma net. Sie steht auch außerhalb der <ul>-Liste.  
                                                                                    my $spacer = "";  
                                                                                    print "<ul>\n";  
                                                                                    for (my $i = 0; $i < @fileKeys; $i++) {  
                                                                                        if ($fileKeys[$i] =~ /^$arg/) {  
                                                                                            if (defined($FILES{$fileKeys[$i]}{SECTIONS})) {  
                                                                                                print qq~  <li><a href="$FILES{$fileKeys[$i]}{FILE_URL}">$FILES{$fileKeys[$i]}{TITLE}</a>\n~;  
                                                                                                $obj->getSectionsForMaps($FILES{$fileKeys[$i]}{SECTIONS}, $spacer);  
                                                                                    
                                                                                            }  
                                                                                            else {  
                                                                                                print qq~  <li><a href="$FILES{$fileKeys[$i]}{FILE_URL}">$FILES{$fileKeys[$i]}{TITLE}</a></li>~, "\n";  
                                                                                            }  
                                                                                        }  
                                                                                    }  
                                                                                    print "</ul>\n";  
                                                                                  }  
                                                                                    
                                                                                  sub getSectionsForMaps {  
                                                                                    my $obj = shift;  
                                                                                    my $sections = shift;  
                                                                                    my @sections = @$sections;  
                                                                                    my $spacer = shift;  
                                                                                    print "    $spacer<ul>\n";  
                                                                                    $spacer = "  ".$spacer;  
                                                                                    my $liEndTag;  
                                                                                    for (my $i = 0; $i < @sections; $i++) {  
                                                                                    
                                                                                      $liEndTag = defined($sections[$i]{SECTIONS}) ? "\n" : "</li>\n";  
                                                                                    
                                                                                      print "    $spacer<li>", $sections[$i]{FILE_URL}, $liEndTag;               # entpr. URL (wenn definiert)  
                                                                                      $spacer = "  ".$spacer if defined($sections[$i]{SECTIONS});  
                                                                                      $obj->getSectionsForMaps($sections[$i]{SECTIONS}, $spacer) if defined($sections[$i]{SECTIONS});  
                                                                                    
                                                                                    }  
                                                                                    print "    ", " " x (length($spacer) - 2), "</ul>\n", "    ", " " x (length($spacer) - 4), "</li>\n";  
                                                                                  }
                                                                                  

                                                                                  Alles nur Testphase, Gruseln also erlaubt!

                                                                                  Viele Grüße aus Frankfurt/Main,
                                                                                  Patrick

                                                                                  --

                                                                                  _ - jenseits vom delirium - _
                                                                                  [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                                                                                  Nichts ist unmöglich? Doch!
                                                                                  Heute schon gegökt?
                                                                                  1. Hi Patrick,

                                                                                    Nur wüßte ich gerne, wo -

                                                                                    Irgendwo in deinen Dateien.  *G &copy;byme!

                                                                                    C:>perl -w

                                                                                    use strict;
                                                                                    use MyWeb::Data;

                                                                                    my $webdata = new Data;
                                                                                    $webdata->mySitemap('B');
                                                                                    ^Z

                                                                                    
                                                                                    >   
                                                                                    > ~~~html  
                                                                                    >                   </ul>     <!-- Hier hackt's -->[/code
                                                                                      
                                                                                      
                                                                                    Den fügst du doch mittels Perl selber ein, kannst du diesen </ul> nicht mit einer Klasse versehen?  
                                                                                      
                                                                                    Du sagst dem C#Script ja selbst, in welcher Reihenfolge der Code generiert wird,  
                                                                                    also wo das erste <ul> beginnt, das erste <li> und so weiter,  
                                                                                    das </ul>, bei dem es hakt fügst du doch auch Dynamisch ein, da kannst du dem ja auch Dynamisch eine Klasse mitgeben.  
                                                                                      
                                                                                      
                                                                                    
                                                                                    > [code lang=perl]  
                                                                                    
                                                                                    ....  
                                                                                    
                                                                                    >   print "<ul>\n";  /* hier ist ja z.b. ein <ul> */  
                                                                                    
                                                                                    ....  
                                                                                    
                                                                                    >   print "</ul>\n";  
                                                                                    
                                                                                    ....  
                                                                                    
                                                                                    >   print "    ", " " x (length($spacer) - 2), "</ul>\n", "    ", " " x (length($spacer) - 4), "</li>\n";
                                                                                    
                                                                                    

                                                                                    Einer der schliessenden </ul> in diesem Code muss doch der hakende sein,
                                                                                    also das Problem Kind.
                                                                                    Kannst du dem betreffenden </ul> nicht im Code eine Klasse zuweisen?

                                                                                    Alles nur Testphase, Gruseln also erlaubt!

                                                                                    Das ist Perl, da braucht es keine Testphase zum Gruseln.  :-)

                                                                                    Grüße aus H im R,
                                                                                    Engin

                                                                                  2. </ul>     <-- Hier hackt's

                                                                                    Was heißt denn hakt?
                                                                                    Da du den Code von Hand produzierst (ich würd für sowas das CGI Modul nutzen), ist natürlich das erste was du geprüft hast ob der Code valide ist?

                                                                                    Ansonsten läßt sich schwer nachvollziehen wo das Problem ist, aber es liegt wohl in der Funktion getSectionsForMaps().

                                                                                    Von wegen Gruselfaktor, warum baust du so eine Schleife?

                                                                                    for (my $i = 0; $i < @sections; $i++) {

                                                                                    In Perl geht das soviel einfacher über foreach() und vor allem der nachfolgende Code würde viel lesbarer.

                                                                                    foreach my $section(@sections) {  
                                                                                         my $liEndTag = defined($section{SECTIONS}) ? "\n" : "</li>\n";  
                                                                                         print "    $spacer<li>", $section{FILE_URL}, $liEndTag;               # entpr. URL (wenn definiert)  
                                                                                         $spacer = "  ".$spacer if defined($section{SECTIONS});  
                                                                                         $obj->getSectionsForMaps($section{SECTIONS}, $spacer) if defined($section{SECTIONS});  
                                                                                         }  
                                                                                    
                                                                                    

                                                                                    Wobei ich es für Unsinn halte HTML Code unbedingt formatiert auszugeben zu wollen (also z.b. die Leerzeichen vor dem <li>), dem Browser ist es egal wie formatiert dein HTML Code deiner dynamischen Seite ist. ausserdem würde ich die Ausgabe immer erst sammeln, bevor ich sie mit print ausgebe.

                                                                                    Struppi.

                                                                                    1. Hi Struppi,

                                                                                      Wobei ich es für Unsinn halte HTML Code unbedingt formatiert auszugeben zu wollen (also z.b. die Leerzeichen vor dem <li>), dem Browser ist es egal wie formatiert dein HTML Code deiner dynamischen Seite ist.

                                                                                      Geht es bei diesem Problem um die Ausgabe im Quelltext?

                                                                                      Wenn ja ziehe ich mein CSS Vorschlag hiermit Offiziell zurück, beim Quelltext kann nicht mal mehr CSS helfen.  *G

                                                                                      Grüße aus H im R,
                                                                                      Engin

                                                                                      1. Wobei ich es für Unsinn halte HTML Code unbedingt formatiert auszugeben zu wollen (also z.b. die Leerzeichen vor dem <li>), dem Browser ist es egal wie formatiert dein HTML Code deiner dynamischen Seite ist.

                                                                                        Geht es bei diesem Problem um die Ausgabe im Quelltext?

                                                                                        Jein, die Formatierung erfolgt über Leerzeichen, aber zusätzlich wird noch der Quelltext versucht schön zu machen (was in erster Linie den Perlcode unübersichtlicher macht).

                                                                                        Wenn ja ziehe ich mein CSS Vorschlag hiermit Offiziell zurück, beim Quelltext kann nicht mal mehr CSS helfen.  *G

                                                                                        Stimmt ;-)
                                                                                        Aber so wie ich es sehe, kann auch bei der Ausgabe CSS das Problem nicht lösen.

                                                                                        Struppi.

                                                                                        1. Hi Patrick, hi Struppi,

                                                                                          Aber im Quelltext hätte ich gerne einen geilen Pfeil:

                                                                                          -
                                                                                              -
                                                                                                -
                                                                                              -
                                                                                            -

                                                                                          Paranoid, was? ;)

                                                                                          Kommt ganz auf den Standpunkt an, manch einer[1] würde es 'Kunst' nennen. *GG

                                                                                          (was in erster Linie den Perlcode unübersichtlicher macht).

                                                                                          Was von meinem Standpunkt aus immer gegeben ist.  :) (Perl ist ein wenig Hässlich)

                                                                                          Aber so wie ich es sehe, kann auch bei der Ausgabe CSS das Problem nicht lösen.

                                                                                          Bei der Ausgabe wäre es doch machbar, den Generierten <li>s und <ul>s Klassen mitzugeben, oder
                                                                                          unterschätze ich hier den Perl Code?

                                                                                          Der Perl Code wird ja nicht auf eigene Faust <ul>s und <li>s generieren, man muss ihm doch sagen,
                                                                                          _was_ _wo_ reinkommt, oder liege ich falsch?

                                                                                          Grüße aus H im R,
                                                                                          Engin
                                                                                          [1] Ich mag auch Sauberen HTML Code

                                                                                          1. (was in erster Linie den Perlcode unübersichtlicher macht).

                                                                                            Was von meinem Standpunkt aus immer gegeben ist.  :) (Perl ist ein wenig Hässlich)

                                                                                            Nicht mehr als PHP und nur wenn man sich auch entsprechend Mühe gibt, Patrick tut es.

                                                                                            Bei der Ausgabe wäre es doch machbar, den Generierten <li>s und <ul>s Klassen mitzugeben, oder
                                                                                            unterschätze ich hier den Perl Code?

                                                                                            Nein das ist kein Problem: CGI::li( { -class => ''}, 'Inhalt');
                                                                                            Nur er will nicht die HTML Elemente designen, sondern den HTML Quellcode, also die Einrückungen und die Zeilenumbrüche und aus dem Grund fügt er viele Zeilen in den schon hälichen Quelllcode ;-) mit häßlichen Befehlen ein, die nur die eine Funktion haben, einen evttuell vorhandenen Fehler im Quellcode (also in der ausgabe des Skriptes) leichter zu finden

                                                                                            [1] Ich mag auch Sauberen HTML Code

                                                                                            Wen man ihn selber schreibt absolut, dann muss man ihn ja auch oft selber lesen können. Wenn manihn aber so abgöttisch liebt, dass man sich den Programmiercode verhunzt sollte man sich wirklich Gedanken über ein Templatesystem machen, dann bekommst du den sauberen HTML Code.

                                                                                            Struppi.

                                                                                            1. Hallo Struppi!

                                                                                              (was in erster Linie den Perlcode unübersichtlicher macht).
                                                                                              Was von meinem Standpunkt aus immer gegeben ist.  :) (Perl ist ein wenig Hässlich)
                                                                                              Nicht mehr als PHP und nur wenn man sich auch entsprechend Mühe gibt, Patrick tut es.

                                                                                              Danke, das Du das erkennst ;)
                                                                                              Das Modul ist noch nicht fertig und sieht nachher sicher besser aus, ich bin noch am Testen.

                                                                                              Und für Engin: Häßlich sind nur die regulären Ausdrücken, aber die sind in anderen Sprachen genauso häßlich. Wenn man sie lesen kann, achtet man aber gar nicht mehr drauf.

                                                                                              Nur er will nicht die HTML Elemente designen, sondern den HTML Quellcode, also die Einrückungen und die Zeilenumbrüche und aus dem Grund fügt er viele Zeilen in den schon hälichen Quelllcode ;-) mit häßlichen Befehlen ein, die nur die eine Funktion haben, einen evttuell vorhandenen Fehler im Quellcode (also in der ausgabe des Skriptes) leichter zu finden

                                                                                              Häßliche Befehle sind nur $spacer und die eine zugegebenermaßen unglückliche Print-Anweisung. OK, dass mit for ($i...) statt foreach auch, foreach ist mir aber nicht unbekannt ;)

                                                                                              Bring dem CGI-Modul bei eine verschachtelte Liste darzustellen (jetzt mal ganz ohen Einrückungen, also fully unpretty, wie das Modul das eh macht). Kann das Modul wissen, dass wenn ein Listenpunkt eine weitere Liste enthält, dieser Listenpunkt keinen Endtag </li> enthält?

                                                                                              Bring dem CGI-Modul bei, eine dynamische generierte Link-Navigation, wie ich es hier schon mache:

                                                                                              http://www.atomic-eggs.com/wae/wae_2.shtml (Quelltext öffnen für den Header, sonst Sitemap schauen)

                                                                                              Header, Sitemap und Vor- und Zurücknavigation (die ich mal lineare Navigation nennen, wie in SELFHTML unten)... alles von meinem makenav.pl generiert.

                                                                                              Ich will keine komplett mittels Perl generierte Seiten haben, wie Rolf es tut, ich will beim SSI bleiben und nur bestimmte Teile der Seiten generieren lassen.

                                                                                              Da makenav nur auf Atomic Eggs »getrimmt« ist, will ich nun ein Modul schreiben, ein passendes Skriptchen dazu, in dem »use MyWeb::Data;« das Modul holt, und das auf jede ordentlich gestaltete Webstruktur passt.

                                                                                              Und dafür, dass ich seit sechs Monaten viel gelernt haben, dank Dir, Alexander und Siechfred, kann man etwas Hässlichkeit im Code verzeichen ;)

                                                                                              [1] Ich mag auch Sauberen HTML Code

                                                                                              Genau, und ich z.B. mag nicht, wenn das CGI-Modul <html><head><title> in einer Zeile schreibt, um danach wiederum </head> in einer eigenen Zeile zu schreiben. Etwas mehr Ästhetik in der Ausgabe hätte man sich vom Autor noch wünschen dürfen, oder?

                                                                                              Viele Grüße aus Frankfurt/Main,
                                                                                              Patrick

                                                                                              --

                                                                                              _ - jenseits vom delirium - _
                                                                                              [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                                                                                              Nichts ist unmöglich? Doch!
                                                                                              Heute schon gegökt?
                                                                                              1. Nur er will nicht die HTML Elemente designen, sondern den HTML Quellcode, also die Einrückungen und die Zeilenumbrüche und aus dem Grund fügt er viele Zeilen in den schon hälichen Quelllcode ;-) mit häßlichen Befehlen ein, die nur die eine Funktion haben, einen evttuell vorhandenen Fehler im Quellcode (also in der ausgabe des Skriptes) leichter zu finden

                                                                                                Häßliche Befehle sind nur $spacer und die eine zugegebenermaßen unglückliche Print-Anweisung. OK, dass mit for ($i...) statt foreach auch, foreach ist mir aber nicht unbekannt ;)

                                                                                                Oh, mir mißfallen auch die sehr verschachtelten Objekte (Hash Referenzen) und die unötigen Dereferenzierungen.

                                                                                                Bring dem CGI-Modul bei eine verschachtelte Liste darzustellen (jetzt mal ganz ohen Einrückungen, also fully unpretty, wie das Modul das eh macht). Kann das Modul wissen, dass wenn ein Listenpunkt eine weitere Liste enthält, dieser Listenpunkt keinen Endtag </li> enthält?

                                                                                                Nein, musst du selber machen. Meinst du in etwa so:

                                                                                                use strict;  
                                                                                                use CGI qw(-no_xhtml);  
                                                                                                print CGI::header( );  
                                                                                                my $liste = [  
                                                                                                 'a1',  
                                                                                                 [  
                                                                                                  'b0',  
                                                                                                  [ 'c1', 'c2', 'c3'],  
                                                                                                  'b1',  
                                                                                                  'b2',  
                                                                                                  [ 'c1', 'c2', 'c3', ['d0', 'd1', 'd2']],  
                                                                                                  'b3'  
                                                                                                 ],  
                                                                                                 'a2',  
                                                                                                 'a3',  
                                                                                                ];  
                                                                                                  
                                                                                                print getListe( $liste, 0);  
                                                                                                  
                                                                                                sub getListe {  
                                                                                                 my $verschachteltes_array = shift;  
                                                                                                 my $count = shift;  
                                                                                                  
                                                                                                 my @liste;  
                                                                                                 my $last = '';  
                                                                                                 my $next = '';  
                                                                                                 foreach( @$verschachteltes_array) {  
                                                                                                  if( ref $_ eq 'ARRAY') {  
                                                                                                   # Eine weitere Liste  
                                                                                                   $next = getListe($_, $count + 1);  
                                                                                                  } elsif (!$last && !$next) {  
                                                                                                   # existiert kein vorheriger Wert,  
                                                                                                   # dann Wert merken  
                                                                                                   $last = $_;  
                                                                                                  } else {  
                                                                                                  
                                                                                                   push @liste, CGI::li( $last . ( $next  || '') );  
                                                                                                   $last = $_;  
                                                                                                   $next = '';  
                                                                                                  }  
                                                                                                 }  
                                                                                                 push @liste, CGI::li( $last . ( $next  || '') ) if $last;  
                                                                                                 return CGI::ul( @liste );  
                                                                                                }  
                                                                                                
                                                                                                

                                                                                                Ich will keine komplett mittels Perl generierte Seiten haben, wie Rolf es tut, ich will beim SSI bleiben und nur bestimmte Teile der Seiten generieren lassen.

                                                                                                Gibt's ja gar nicht gegen zu sagen, aber das geht auch mit dem CGI Modul prima.

                                                                                                Und dafür, dass ich seit sechs Monaten viel gelernt haben, dank Dir, Alexander und Siechfred, kann man etwas Hässlichkeit im Code verzeichen ;)

                                                                                                Jaja, ich mein das ja gar nicht so.

                                                                                                [1] Ich mag auch Sauberen HTML Code

                                                                                                Genau, und ich z.B. mag nicht, wenn das CGI-Modul <html><head><title> in einer Zeile schreibt, um danach wiederum </head> in einer eigenen Zeile zu schreiben. Etwas mehr Ästhetik in der Ausgabe hätte man sich vom Autor noch wünschen dürfen, oder?

                                                                                                Du kannst natürlich wenn du willst auch nach jeder HTML Ausgabe ein Newline einfügen, aber was hat der Quellcode mit Ästhetik zu tun? Ich guck mir den nur selten an. Ich mein' - du guckst dir ja auch nicht die Sektoren auf der Festplatte an, um zu sehen wie Modul xyz die Daten abspeichert, hauptsache es funktioniert.

                                                                                                Und wie gesagt, wenn du Templates verwendest kannst du den Code gestalten, wie du ihn willst.

                                                                                                Struppi.

                                                                                                1. Hallo Struppi!

                                                                                                  Oh, mir mißfallen auch die sehr verschachtelten Objekte (Hash Referenzen) und die unötigen Dereferenzierungen.

                                                                                                  Hm, ich dachte, es sei besser, Referenzen zu übergeben als direkt Hashes oder Arrays. Schriebst Du nicht sowas letztens?

                                                                                                  Nicht alle subs brauchen den Hash, nicht alle brauchen die Keys.

                                                                                                  Nein, musst du selber machen. Meinst du in etwa so:

                                                                                                  Ja, geiler Code, danke... Du kennst das Modul besser als den Inhalt Deiner Westentasche, was? ;)

                                                                                                  Gibt's ja gar nicht gegen zu sagen, aber das geht auch mit dem CGI Modul prima.

                                                                                                  Ja, aber bis ich da eingestiegen bin, habe ich in vielen Fällen selbst was geschrieben. Übrigens, das mit den http-equiv-Metas habe ich aus SELFHTML:

                                                                                                  start_html(-meta=>{'keywords'=>'HTML,CSS'}); | Mit -meta können Sie Meta-Angaben notieren -
                                                                                                                                                 jedoch nur solche, die in HTML vom Typ name
                                                                                                                                                 sind, nicht solche, die vom Typ http-equiv
                                                                                                                                                 sind.

                                                                                                  Viele Grüße aus Frankfurt/Main,
                                                                                                  Patrick

                                                                                                  --

                                                                                                  _ - jenseits vom delirium - _
                                                                                                  [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                                                                                                  Nichts ist unmöglich? Doch!
                                                                                                  Heute schon gegökt?
                                                                                                  1. Oh, mir mißfallen auch die sehr verschachtelten Objekte (Hash Referenzen) und die unötigen Dereferenzierungen.

                                                                                                    Hm, ich dachte, es sei besser, Referenzen zu übergeben als direkt Hashes oder Arrays. Schriebst Du nicht sowas letztens?

                                                                                                    100%, aber nichtsdestotrotz sind verschachtelte Strukturen immer schwer zu lesen. Daher ist aber einer gewissen Komplexität die Überlegung ob du für eine Datenstruktur lieber ein Objekt nimmst, nicht verkehrt. Es gibt für sowas auch einen Haufen Module, ich benutze eine eigene Adaption von Class::Accessor.

                                                                                                    Nein, musst du selber machen. Meinst du in etwa so:

                                                                                                    Ja, geiler Code, danke... Du kennst das Modul besser als den Inhalt Deiner Westentasche, was? ;)

                                                                                                    Nicht unbedingt, da ich eher der Typ bin der nichts in der Tasche hat und keine Westen trage ;-)

                                                                                                    Gibt's ja gar nicht gegen zu sagen, aber das geht auch mit dem CGI Modul prima.

                                                                                                    Ja, aber bis ich da eingestiegen bin, habe ich in vielen Fällen selbst was geschrieben.

                                                                                                    ging mir auch nicht anders, zumal damals bei einigen Perl Anbietern noch nicht mal das CGI Modul installiert war (harte Zeiten damals ;-) )

                                                                                                    Übrigens, das mit den http-equiv-Metas habe ich aus SELFHTML:

                                                                                                    start_html(-meta=>{'keywords'=>'HTML,CSS'}); | Mit -meta können Sie Meta-Angaben notieren -
                                                                                                                                                   jedoch nur solche, die in HTML vom Typ name
                                                                                                                                                   sind, nicht solche, die vom Typ http-equiv
                                                                                                                                                   sind.

                                                                                                    Das hat der Christoph geschrieben, mir wurd' das irgendwann zuviel alles gegenzulesen, da sind noch mehr Unstimmigkeiten.

                                                                                                    Struppi.

                                                                                      2. Hallo Engin!

                                                                                        Geht es bei diesem Problem um die Ausgabe im Quelltext?
                                                                                        Wenn ja ziehe ich mein CSS Vorschlag hiermit Offiziell zurück, beim Quelltext kann nicht mal mehr CSS helfen.  *G

                                                                                        Ja. Es geht ausschließlich um den Quelltext. Und die ausgegebene Liste ist valide, das habe ich geprüft, sie wird im Browser auch richtig dargestellt.

                                                                                        Aber im Quelltext hätte ich gerne einen geilen Pfeil:

                                                                                        -
                                                                                            -
                                                                                              -
                                                                                            -
                                                                                          -

                                                                                        Paranoid, was? ;)

                                                                                        Viele Grüße aus Frankfurt/Main,
                                                                                        Patrick

                                                                                        --

                                                                                        _ - jenseits vom delirium - _
                                                                                        [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                                                                                        Nichts ist unmöglich? Doch!
                                                                                        Heute schon gegökt?
                                                                                    2. Hallo Struppi!

                                                                                      Was heißt denn hakt?

                                                                                      Dass die Einrückungen nicht stimmen (was ja mit der Spacer-Geschichte auch logisch ist).

                                                                                      Da du den Code von Hand produzierst (ich würd für sowas das CGI Modul nutzen), ist natürlich das erste was du geprüft hast ob der Code valide ist?

                                                                                      Ja, die Liste validieren strikt. Und ja, es geht nur um einen »wohlgeformten« Quelltext [1]. Und bei all Deiner Vorliebe für das CGI-Modul, weiß ich nicht, inwiefern das Modul mir hier helfen könnte. Die Daten hole ich aus einem selbst abgelegten Hash in einer Datei "data". Die sub parseDataFile liest die Datei und stellt dem Restcode den Hash zur Verfügung.

                                                                                      In Perl geht das soviel einfacher über foreach() und vor allem der nachfolgende Code würde viel lesbarer.

                                                                                      foreach my $section(@sections) {

                                                                                      my $liEndTag = defined($section{SECTIONS}) ? "\n" : "</li>\n";
                                                                                           print "    $spacer<li>", $section{FILE_URL}, $liEndTag;               # entpr. URL (wenn definiert)
                                                                                           $spacer = "  ".$spacer if defined($section{SECTIONS});
                                                                                           $obj->getSectionsForMaps($section{SECTIONS}, $spacer) if defined($section{SECTIONS});
                                                                                           }

                                                                                        
                                                                                      Danke, sieht in der Tat besser aus. Ich habe aber viel mit Copy&Paste gearbeitet, und bei einer weitern sub muss ich mit $i iterieren. Hatte ich hier einfach übernommen.  
                                                                                        
                                                                                        
                                                                                      
                                                                                      >   
                                                                                      > Wobei ich es für Unsinn halte HTML Code unbedingt formatiert auszugeben zu wollen (also z.b. die Leerzeichen vor dem <li>), dem Browser ist es egal wie formatiert dein HTML Code deiner dynamischen Seite ist. ausserdem würde ich die Ausgabe immer erst sammeln, bevor ich sie mit print ausgebe.  
                                                                                        
                                                                                        
                                                                                      Wobei wir zu [1] sind. Sicher ist es dem Browser egal, wie der Quelltext aussieht und er ihn darstellen kann (fehlerfrei). Nur dem Menschen nicht. Wenn man irgendwann feststellt, dass die generierte Seite nicht validert, will man sich ja den Quelltext anschauen, um dann im Perl-Skript einen entdeckten Fehler im Seiten-Quelltext zu korrigieren. Und da habe ich lieber vor mir einen etwas prettier Output als das, was das CGI-Modul manchmal rauswirft!  
                                                                                        
                                                                                      CGI-Modul: kann keine meta http-equiv einfügen, keine <link>-Elemente.  
                                                                                        
                                                                                      Viele Grüße aus Frankfurt/Main,  
                                                                                      Patrick
                                                                                      
                                                                                      -- 
                                                                                      ![](http://www.atomic-eggs.com/fuernA.jpg)  
                                                                                        
                                                                                      \_ - jenseits vom delirium - \_  
                                                                                        
                                                                                      [[link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash](http://www.atomic-eggs.com/)]  
                                                                                      Nichts ist unmöglich? [Doch!](http://www.atomic-eggs.com/cwi/cwi_4.shtml)  
                                                                                      Heute schon ge[gök](http://goek.atomic-eggs.com/goek_goek.html)t?
                                                                                      
                                                                                      1. Da du den Code von Hand produzierst (ich würd für sowas das CGI Modul nutzen), ist natürlich das erste was du geprüft hast ob der Code valide ist?

                                                                                        Ja, die Liste validieren strikt. Und ja, es geht nur um einen »wohlgeformten« Quelltext [1]. Und bei all Deiner Vorliebe für das CGI-Modul, weiß ich nicht, inwiefern das Modul mir hier helfen könnte.

                                                                                        Mir war tasächlich nicht klar, dass es dir um den Quelltext geht. Um sowas kümmer ich mich nie.

                                                                                        Danke, sieht in der Tat besser aus. Ich habe aber viel mit Copy&Paste gearbeitet, und bei einer weitern sub muss ich mit $i iterieren. Hatte ich hier einfach übernommen.

                                                                                        Naja, glaub ich nicht, die Schleife im C Stil ist eigentlich nie nötig und wenn ich wirklich einen Zähler brauche, dann definiere ich den zusätzlich.

                                                                                        Wobei wir zu [1] sind. Sicher ist es dem Browser egal, wie der Quelltext aussieht und er ihn darstellen kann (fehlerfrei). Nur dem Menschen nicht. Wenn man irgendwann feststellt, dass die generierte Seite nicht validert, will man sich ja den Quelltext anschauen, um dann im Perl-Skript einen entdeckten Fehler im Seiten-Quelltext zu korrigieren. Und da habe ich lieber vor mir einen etwas prettier Output als das, was das CGI-Modul manchmal rauswirft!

                                                                                        Wenn du das CGI Modul verwendest ist die Wahrscheinlichkeit, dass der Quelltext validiert auf jeden Fall wesentlich höher und ich hatte bisher keine Probleme den Quelltext zu kontrollieren. Ich weiß auch nicht warum du glaubst was an der Ausgabe so schlimm ist.

                                                                                        Zudem erschwerst du dir die Programmierung da der Perlcode unübersichtlicher wird, du machst dir also die Alltagsarbeit schwerer, weil du ab und zu einen Ausgabefehler hoffst leichter zu finden?

                                                                                        CGI-Modul: kann keine meta http-equiv einfügen, keine <link>-Elemente.

                                                                                        Mal abgesehen davon, dass das nicht stimmt.
                                                                                        D.h. du bindest das Modul gar nicht ein? Dann ist das ja ok. Aber wenn du es einbindest läßt du über 200 KB teilweise geniale Funktionen für die Ausgabe von HTML ungenutzt um immer wieder das Rad neu zu erfinden, während in deinem Skript schon ein Rennauto steckt.

                                                                                        #!/usr/bin/perl -w  
                                                                                        use strict;  
                                                                                        use CGI qw(-no_xhtml);  
                                                                                        print CGI::header( ),  
                                                                                        CGI::start_html( -head =>  
                                                                                           [  
                                                                                              CGI::meta( {-http_equiv => 'Content-Type', -content    => 'text/html'} ),  
                                                                                              CGI::Link( {-rel=>'next',-href=>'http://www.capricorn.com/s2.html'} )  
                                                                                           ]  
                                                                                          
                                                                                        ), CGI::end_html();
                                                                                        

                                                                                        Struppi.

                                                                              2. Hallo Engin!

                                                                                Warum nicht mittels CSS? Gib dem letzten </li> eine Klasse, das ganze wird ja eh Zeile für
                                                                                Zeile Generiert, aber einmal schreibst du es ja auf jedenfall, gezwungener maßen, und genau da verpasst du dem </li>
                                                                                klang heimlich eine Klasse und kannst mit ihm machen was du willst.  *G

                                                                                Hä? Ist es mir gestattet, zu sagen, dass ich nichts verstehe? ;)

                                                                                Nö, er würd sagen, du machst irgendwas falsch.  *GG

                                                                                Hat er ja bereits ;)

                                                                                Viele Grüße aus Frankfurt/Main,
                                                                                Patrick

                                                                                --

                                                                                _ - jenseits vom delirium - _
                                                                                [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                                                                                Nichts ist unmöglich? Doch!
                                                                                Heute schon gegökt?
                2. Hi Patrick,

                  nochmal kurz zu dieser Frage, wie kann ich mir denn den Aktuell gesetzten Wert in Form von Text ausgeben lassen?

                  Also wenn z.b. Arial als Schriftart gewählt, wo ist dann dieser Wert gespeichert und wie komme ich an diesen ran?

                  Mit diesen Werten könnte ich ein "normales" Cookie füttern und damit arbeiten, das müsste ich an und für sich noch hinkriegen.

                  Grüße aus H im R,
                  Engin

                  1. Mahlzeit,

                    Also wenn z.b. Arial als Schriftart gewählt, wo ist dann dieser Wert gespeichert und wie komme ich an diesen ran?

                    Mit http://de.selfhtml.org/javascript/objekte/style.htm#style_eigenschaften@title=Javascript? Suchet, so werdet Ihr finden ...

                    MfG,
                    EKKi

                    --
                    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        2. Hallo Engin!

          War doch nicht so schwer, wie ich es angenommen hatte,
          also das ganze Client Seitig umzusetzen. Wobei den Tricky Part hab ich noch
          nicht gefunden, nämlich das Ganze dann Seiten übergreifend zu realisieren.

          Du meinst, dass die gewählte Schriftart erhalten bleibt, bei einem Seitenwechsel? Ich hab's bei meinem font-size-Skript mit window.name gelöst (siehe font.js).

          Zu empfehlen ist der von molily aus zwei früheren Artikeln zusammengefasste neue Artikel:

          Javascript-Wertübergabe zwischen verschiedenen HTML-Dokumenten

          Viele Grüße aus Frankfurt/Main,
          Patrick

          --

          _ - jenseits vom delirium - _
          [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
          Nichts ist unmöglich? Doch!
          Heute schon gegökt?
          1. Hi Patrick,

            Du meinst, dass die gewählte Schriftart erhalten bleibt, bei einem Seitenwechsel? Ich hab's bei meinem font-size-Skript mit window.name gelöst (siehe font.js).

            Genau das meine ich, font.js schau ich mir nochmal genauer an.

            Zu empfehlen ist der von molily aus zwei früheren Artikeln zusammengefasste neue Artikel:
            Javascript-Wertübergabe zwischen verschiedenen HTML-Dokumenten

            Danke für den Link, das werde ich mir Heute Abend durchlesen, wobei, font.js dürfte
            für mich interessanter sein, da bei deiner font.js nichts über die URL weiter gegeben wird.

            Grüße aus H im R,
            Engin

            1. Hallo Engin!

              für mich interessanter sein, da bei deiner font.js nichts über die URL weiter gegeben wird.

              Der Artikel behandelt aber auch die Paramterübergabe mittels window.name.

              Bei Deinem Vorhaben werden Dir die Leerzeichen allerdings Kopfzerbrechen bereiten, da ein »window.name«, wie Variablennamen allgemein, keine Leerzeichen enthalten darf. »font.js« sollte nur als Denkanstoß gelten, denn da arbeite ich ja nur mit Zahlen (was ja an die isNaN-Prüfung und parseInt zu erkennen ist).

              Viele Grüße aus Frankfurt/Main,
              Patrick

              --

              _ - jenseits vom delirium - _
              [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
              Nichts ist unmöglich? Doch!
              Heute schon gegökt?
              1. [latex]Moin![/latex]

                Bei Deinem Vorhaben werden Dir die Leerzeichen allerdings Kopfzerbrechen bereiten, da ein »window.name«, wie Variablennamen allgemein, keine Leerzeichen enthalten darf.

                Dieses Problem könnte er aber mit
                encodeURI() umgehen. Und zum Auslesen entsprechend decodeURI()

                Cü,

                Kai

                --
                een eigen huis, een plek onder de zon
                en altijd iemand in de buurt die van me houden kon
                toch wou ik dat ik net iets vaker, iets vaker simpelweg gelukkig was
                ie:{ fl:( br:< va:) ls:? fo:| rl:? n4:° ss:{ de:] js:| ch:? mo:| zu:|]
  2. Bei Schriftarten, die keine Leerzeichen haben Funktioniert das, nur sobald
    Leerzeichen ins Spiel kommen,
    hakt das ganze, man muss dann Wild hin und her klicken, bis es dann doch geht.

    Funktioniert bei mir tadellos.

    Struppi.

    1. Hallo Struppi!

      Funktioniert bei mir tadellos.

      Bei mir auch, außer Trebuchet. Bei mir heißt die Schriftart »Trebuchet MS«, dieser Name muss auch in der Liste, bzw. bei der Button-Variante als value des Buttons drin...

      Viele Grüße aus Frankfurt/Main,
      Patrick

      --

      _ - jenseits vom delirium - _
      [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
      Nichts ist unmöglich? Doch!
      Heute schon gegökt?
      1. Hi Patrick, hi struppi,

        Funktioniert bei mir tadellos.

        Nach dieser Funktion habe ich bestimmt schon ne Woche gesucht.  :-)
        Hättest du Einwände, wenn ich das so benutze?

        Bei mir auch, außer Trebuchet. Bei mir heißt die Schriftart »Trebuchet MS«, dieser Name muss auch in der Liste, bzw. bei der Button-Variante als value des Buttons drin...

        Stimmt, das MS hintendran hatte gefehlt, dadurch hatte es im FF gehakt, jetzt funktioniert es tadellos.

        Danke euch beiden.

        Grüße aus H im R,
        Engin

        1. Funktioniert bei mir tadellos.

          Nach dieser Funktion habe ich bestimmt schon ne Woche gesucht.  :-)
          Hättest du Einwände, wenn ich das so benutze?

          Natürlich nicht, aber dir waren bis dato Funktionsparameter unbekannt?

          Struppi.

          1. Hi Struppi,

            aber dir waren bis dato Funktionsparameter unbekannt?

            Parameter sagt mir was, allerdings Funktionsparameter sagt mir noch nichts. Ich hab
            auch noch nie was mit Javascript gemacht, Paar mal versucht schon, aber noch nie was gebacken gekriegt.

            Heute ist Premiere.

            Grüße aus H im R,
            Engin

            1. aber dir waren bis dato Funktionsparameter unbekannt?

              Parameter sagt mir was, allerdings Funktionsparameter sagt mir noch nichts. Ich hab
              auch noch nie was mit Javascript gemacht, Paar mal versucht schon, aber noch nie was gebacken gekriegt.

              Funktionsparameter, sind die Parameter, die du einer Funktion übergibst, ist in jeder Programmiersprache so

              Struppi.