Engin: Mein Firefox macht aus jeder Seite eine einzige Textarea

Hi,

schon seit Tagen jetzt verhält sich mein FF recht Merkwürdig, wenn ich in irgendeine Website
reinklicke, verhält sich der Browser wie in einer Textarea, ich bekomm dann dieses Blinkende etwas, das man aus
der Textarea kennt mitten in der Seite angezeigt, je nachdem, wo man grad geklickt hat.

Ist das ein neuer bug oder spinnt mein Rechner?

Grüße aus H im R,
Engin

  1. echo $begrüßung;

    [...] wenn ich in irgendeine Website reinklicke, verhält sich der Browser wie in einer Textarea, ich bekomm dann dieses Blinkende etwas, das man aus der Textarea kennt mitten in der Seite angezeigt, je nachdem, wo man grad geklickt hat.

    Das blinkende Etwas nennt sich Text-Cursor. Du kannst ihn mit der Einstellung "Markieren von Text über die Tastatur zulassen" aus der Erweitert-Seite des Einstellungen-Dialog ein- und ausschalten.

    echo "$verabschiedung $name";

    1. Hi dedlfix,

      Das blinkende Etwas nennt sich Text-Cursor. Du kannst ihn mit der Einstellung "Markieren von Text über die Tastatur zulassen" aus der Erweitert-Seite des Einstellungen-Dialog ein- und ausschalten.

      Danke, das war es. Hatte mir das wohl vor ein Paar Tagen so eingestellt und völlig vergessen.

      Grüße aus H im R,
      Engin

      1. Hallo Engin,

        Danke, das war es. Hatte mir das wohl vor ein Paar Tagen so eingestellt und völlig vergessen.

        Lässt sich übrigens auch mit F7 (unbeabsichtigt) an- und abstellen.

        Jonathan

  2. Hi,

    ich mach die letzten Tage vermehrt mit Javascript rum und traf immer wieder auf die Hürde Onload, mit dem
    die verschiedenen Funktionen aufgerufen werden.
    Jetzt hab ich ein Script gefunden mit dem das ganze kein Problem mehr zu sein scheint, soweit ich das jetzt beurteilen kann, es gibt keine Fehlermeldungen
    und alles funktioniert wie es soll.

    function addLoadEvent(func) {  
      var oldonload = window.onload;  
      if (typeof window.onload != 'function') {  
        window.onload = func;  
      } else {  
        window.onload = function() {  
          oldonload();  
          func();  
        }  
      }  
    }  
    addLoadEvent(LadeInfo);  
    addLoadEvent(setup);
    

    Kann ich das Script Sorglos weiter verwenden?

    Grüße aus H im R,
    Engin

    1. Kann ich das Script Sorglos weiter verwenden?

      Nein. Das Skript speichert nur eine Referenz auf die Funktion, d.h. beim dritten Aufruf wird die erste Funktion nicht mehr aufgerufen. Es gibt ausgereiftere Event Funktionen. Die Sache zu lösen ist aber nicht so einfach. Es gibt zum Thema zahlreiche Seiten und Diskussionen im Internet, such mal nach addEvent oder addEventListener

      Struppi.

      1. Hi Struppi,

        Nein. Das Skript speichert nur eine Referenz auf die Funktion, d.h. beim dritten Aufruf wird die erste Funktion nicht mehr aufgerufen.

        Wie darf ich das verstehen?

        Es gibt ausgereiftere Event Funktionen. Die Sache zu lösen ist aber nicht so einfach. Es gibt zum Thema zahlreiche Seiten und Diskussionen im Internet, such mal nach addEvent oder addEventListener

        Danke für den Hinweis, das werde ich gleich machen.

        Grüße aus H im R,
        Engin

      2. Hi Struppi,

        Die Sache zu lösen ist aber nicht so einfach. Es gibt zum Thema zahlreiche Seiten und Diskussionen im Internet, such mal nach addEvent oder addEventListener

        So, hab jetzt nach einer Menge Englisch Sprachiger Seiten endlich eine Deutsch Sprachige gefunden,
        und dort dann folgendes Script

        function addEvent(obj, evType, fn){  
         if (obj.addEventListener){  
           obj.addEventListener(evType, fn, false);  
           return true;  
         } else if (obj.attachEvent){  
           var r = obj.attachEvent("on"+evType, fn);  
           return r;  
         } else {  
           return false;  
         }  
        }  
        addEvent(window, 'load', LadeInfo);  
        addEvent(window, 'load', setup);
        

        In wie fern eignet sich dieses Script? Wie löst du dieses Problem?

        Grüße aus H im R,
        Engin

        1. Hallo,

          function addEvent(obj, evType, fn){

          if (obj.addEventListener){
             obj.addEventListener(evType, fn, false);
             return true;
          } else if (obj.attachEvent){
             var r = obj.attachEvent("on"+evType, fn);
             return r;
          } else {
             return false;
          }
          }
          addEvent(window, 'load', LadeInfo);
          addEvent(window, 'load', setup);

          
          >   
          > In wie fern eignet sich dieses Script?  
            
          Kommt auf den Zweck an.  
            
          Zuerst hast du hier ein Script gepostet, was mehrere Funktion beim onload ausführen soll. Das Prinzip kann man natürlich ausdehnen, aber dessen Einsatzbereich ist erst einmal begrenzt.  
            
          Das obige Script ist für jedes Event-Handling gedacht. Es ist durchaus tauglich für gewisse Anwendungen. Es hat aber einige Probleme, die dazu geführt haben, dass es einen [Wettbewerb zur Überarbeitung](http://www.quirksmode.org/blog/archives/2005/09/addevent_recodi.html) gab.  
            
          Für mich ist das wirklich schwerwiegende Problem bei der obigen Vorgehensweise, dass bei der Verwendung von attachEvent die Handler-Funktion nicht im Kontext des Elementobjektes ausgeführt wird, an dem es hängt. Das kann man aber einfach umgehen durch eine Closure und einem ausdrücklichen Kontextwechsel mit [call](http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Objects:Function:call):  
            
          `.attachEvent(..., function () { fn.call(obj); } )`{:.language-javascript}  
            
          Darüber hinaus hat man u.U. weitere Anforderungen, die obige Funktion nicht abdeckt, z.B. das Entfernen von Handlern und das Nivellieren von anderen IE-Unzulänglichkeiten. Zu diesem Zweck gibt es natürlich fünfhundert Scripte, und die bekannten Bibliotheken jQuery, Prototype, Yahoo UI usw. bringen selbst sehr ausgereiftes Event-Handling mit. Für den Alltagsgebrauch, wenn man keine große Bibliothek verwendet, reicht aber auch [Dean Erwards Script](http://dean.edwards.name/my/events.js).  
            
          [John Resigs addEvent](http://ejohn.org/projects/flexible-javascript-events/) hatte zwar den Wettbewerb gewonnen, aber es hat [ein kleines Problem](http://my.opera.com/hallvors/blog/show.dml/1665828), weshalb ich für es ziemlich problematisch halte.  
            
          Mathias
          
          -- 
          [SELFHTML aktuell Weblog](http://aktuell.de.selfhtml.org/weblog/)
          
          1. Hi molily,

            Das obige Script ist für jedes Event-Handling gedacht. Es ist durchaus tauglich für gewisse Anwendungen. Es hat aber einige Probleme, die dazu geführt haben, dass es einen Wettbewerb zur Überarbeitung gab.

            Alle von dir verlinkten Seiten hatte ich im laufe der nacht besucht, nur versteh ich da nicht
            gerade viel, beschäftige mich erst seit ein zwei Wochen mit Javascript.

            Ziel war Anfangs nur einige Funktionen auf einer Seite gleichzeitig zum laufen zu bringen,
            das grösste Problem stellte die Greybox da, sobald ich was mit
            onload hatte lief das ding nicht mehr.

            Für den Alltagsgebrauch, wenn man keine große Bibliothek verwendet, reicht aber auch Dean Erwards Script.

            Dieses Script habe ich jetzt eifach so wie es ist eingebunden und es funktioniert fast alles wie von selbst. :)

            nur die Funktion

            function setup() {  
            var len = document.images.length;  
            for(var i = 0; i < len; ++i)  
                  {  
            assignEvent(i);  
             }  
                  }  
            function assignEvent(index) {  
            document.images[index].onmouseout = mOut;  
            document.images[index].onmouseover = mOver;  
            }  
            function mOut() {  
            this.style.border = "1px solid #b5b5b5";  
            }  
            function mOver() {  
            this.style.border = "1px solid #fff";  
            }
            

            funktioniert nicht, das ist aber halb so Wild, da finde ich bestimmt noch was anderes, zumal es nicht mal wichtig ist.

            Danke für den Link.

            Grüße aus H im R,
            Engin

      3. Hallo,

        Das Skript speichert nur eine Referenz auf die Funktion, d.h. beim dritten Aufruf wird die erste Funktion nicht mehr aufgerufen.

        Das stimmt nicht. Es wrappt speichert die bestehende Funktion in einer lokalen Variable und erzeugt dann eine Closure, die später noch Zugriff auf diese Variable hat. Und diese bestehende Funktion wird dann ausgeführt, danach die neu übergebene.
        Ruft man die Funktion mehrfach auf, wrappt sie die gegenwärtige onload-Funktion immer wieder durch eine Closure, ad infinitum.

        Am Ende kommt dann so eine Verschachtelung heraus (ist nur eine Veranschaulichung):

        window.onload = function () {  
           (function () {  
              (function () {  
                 f1();  
                 f2();  
              })();  
              f3();  
           })();  
           f4();  
           // usw.  
        };
        

        Es gibt ausgereiftere Event Funktionen.

        Ja.

        Mathias