uepselon: this.blur() is not an object

Hallo,

sorry aber ich muss das leider nochmal posten. Da ich das ganze hier
am Freitag schon mal geschrieben habe, ich jedoch erst heute Morgen wieder Zeit hatte nachzusehen ob Antworten da sind, musste ich leider feststellen das mein Beitrag nicht mehr enthalten ist.

Also nochmal:

Bsp: Ich benutze <a href="..." onClick="this.blur()"> um den Markierungsrahmen nach klicken des Links zu entfernen. Im IE
wird das anstandslos gemacht. Im Netscape Com. wird es zwar auch gemacht, jedoch kommt noch ein Javascriptfehler mit: this.blur is not an Object, warum das?

Danke

Y

  1. Bsp: Ich benutze <a href="..." onClick="this.blur()"> um den Markierungsrahmen nach klicken des Links zu entfernen.

    Es heißt: onFocus="this.blur()";

    Grüße

    Thorsten

    1. Hallo Thorsten,

      Bsp: Ich benutze <a href="..." onClick="this.blur()"> um den Markierungsrahmen nach klicken des Links zu entfernen.

      Es heißt: onFocus="this.blur()";

      NEIN!

      Bitte verwende diese Konstruktion niemals, auf überhaupt keinen Fall
      und egal bei welchem Wetter im a-Tag, Du raubst damit den Besuchern
      Deiner Website jegliche Möglichkeit, per Tastatur zu navigieren.
      So etwas kann sehr sinnvoll sein, wenn man z.Bsp. die Links bei
      einem längeren Text ansurfen will o.ä., auf jeden Fall ist man
      dann wesentlich schneller als mit der Maus.

      Wenn Du unbedingt diesen Linkrahmen weghaben willst, dann bitte hier
      nachschauen: </selfhtml/sfausles/tsfa_tci.htm#a7>

      Viele Grüße aus Dresden,
      Stefan Einspender

      1. Hi,

        nun ja, ich brauche das ganze nur im Navigationsmenü, weshalb man die
        fehlende Tastaturnavigation wohl verschmerzen könnte. Ich würde ja gerne onClick verwenden, aber das ganze scheint nur bei onFocus im IE _und_ Netscape zu funktionieren.

        Gruß

        Y

        1. Hallo Y,

          nun ja, ich brauche das ganze nur im Navigationsmenü, weshalb man die
          fehlende Tastaturnavigation wohl verschmerzen könnte.

          Eine Sache, die nachweislich Navigation (per Tastatur) unmöglich
          macht, im Navigationsmenü einsetzen?
          Wenn auf irgendeiner Seite onFocus verwendet wird, dann sind alle
          nachfolgenden Links per Tastatur unereichbar geworden :(

          Ich würde ja gerne onClick verwenden, aber das ganze scheint nur bei onFocus im IE _und_ Netscape zu funktionieren.

          Nein, das von mir verlinkte Beispiel funktioniert im IE _und_ NC.

          Viele Grüße aus Dresden,
          Stefan Einspender

          1. Hallo Stefan,

            Nein, das von mir verlinkte Beispiel funktioniert im IE _und_ NC.

            Leider nicht, da ja schon die Überschrift nur den MS IE vorsieht.

            Lass ich document.all in der Abfrage weg, hab ich ja wieder das gleiche Prob wie vorher.

            Gruß

            Y

            1. Hallo Y,

              Nein, das von mir verlinkte Beispiel funktioniert im IE _und_ NC.

              Leider nicht, da ja schon die Überschrift nur den MS IE vorsieht.

              Die Überschrift sagt lediglich aus, dass der genannte Lösungsan-
              satz dazu dient, eine "Problem" des MSIE zu vermeiden.
              Die unter </selfhtml/sfausles/tsfa_tci.htm#a7> genannte Lösung funk-
              tioniert sowohl bei MSIE als auch bei Netscape!

              Lass ich document.all in der Abfrage weg, hab ich ja wieder das gleiche Prob wie vorher.

              Ist mir auch klar. Wenn Du von A nach B willst und ich sage Dir,
              fahre mit dem Auto, dann funktioniert dass.
              Wenn Du aber beim Auto einfach die Räder weglässt, dann ist es
              wohl nicht mehr möglich, damit von A nach B zu fahren!

              Verwende die Lösung so, wie sie dort im gelben Kasten beschrieben
              ist, sie funktioniert 100%, dass _weiß_ ich :)

              Viele Grüße aus Dresden,
              Stefan Einspender

              1. Hi,

                also wo soll hier bitte ein unterschied sein:

                <script language="JavaScript">
                <!--

                function linie(x)
                {
                 x.blur();
                }

                //-->
                </script>

                <a href="seite.htm" onclick="linie(this);">
                <img src="bild.gif" width="80" height="30" border="0" alt="Verweistext">
                </a>

                oder

                <a href="seite.htm" onclick="javascript:this.blur()">
                <img src="bild.gif" width="80" height="30" border="0" alt="Verweistext">
                </a>

                ist doch wurscht egal.
                Allein der Funktionsaufruf mit Übergabe, macht doch keine neue Funktion draraus.

                Gruß

                Y

                1. Hallo Y,

                  also wo soll hier bitte ein unterschied sein:

                  wenn ich ehrlich bin, so langsam verliere ich meine Contenance ...

                  Allein der Funktionsaufruf mit Übergabe, macht doch keine neue Funktion draraus.

                  verwende das Script GENAU SO, NICHT VERÄNDERT und INKL. DER ABFRAGE
                  auf document.all, dann funktioniert es und ist nicht dasgleiche wie
                  onclick="javascript:this.blur()" (hier ist übrigens javascript:
                  überflüssig).

                  Viele Grüße aus Dresden,
                  Stefan Einspender

                  1. Danke, aber ne Erklärung warum das funktioniert und wo der
                    Unterschied zu onClick="this.blur()" liegt wär vielleicht nicht schlecht.
                    Da Netscape document.all ja eh nicht kennt.
                    Und folglich im Netscape der Focus nach wie vor auf dem Link liegen müsste.

                    Gruß

                    Y

                    1. Danke, aber ne Erklärung warum das funktioniert und wo der
                      Unterschied zu onClick="this.blur()" liegt wär vielleicht nicht schlecht.
                      Da Netscape document.all ja eh nicht kennt.

                      EBEN! Es ist also NICHT dasselbe wie einfach onClick=this.blur(), weil ja noch abgefragt wird, ob document.all vorhanden ist. Also wird das Zeug bei Netscape nicht ausgefuehrt.

                      Und folglich im Netscape der Focus nach wie vor auf dem Link liegen müsste.

                      Sieht aus, als haettest Du's jetzt ENDLICH gerafft.

                    2. Danke, aber ne Erklärung warum das funktioniert und wo der
                      Unterschied zu onClick="this.blur()" liegt wär vielleicht nicht schlecht.
                      Da Netscape document.all ja eh nicht kennt.

                      Genau darin liegt der Sinn der Aktion ...
                      Weil Netscape eben document.all nicht kennt, wird x.blur(); nicht
                      ausgeführt.
                      Der Unterschied liegt eben in dieser Abfrage (die Du einfach so
                      weglassen wolltest *grummel*), die kannst Du gern auch in jeden
                      Link extra einbauen, funktioniert mit Sicherheit auch.
                      Oder Du benutzt die Funktion und rufst die dann bei onClick auf.

                      Und folglich im Netscape der Focus nach wie vor auf dem Link liegen müsste.

                      Siehst Du im Netscape Markierungsrahmen, die man entfernen muß?
                      Ich nicht.

      2. Hi zusammen,

        und um noch zu ergänzen woher der Fehler im Netsi kommt:

        Ein Link kann als solcher im Netsi keinen Focus kriegen, deshalb ist es ein Fehler, blur() auf ein Objekt anzuwenden, das nicht mal focus() hat. Daher auch die "Browserweiche" in </selfhtml/sfausles/tsfa_tci.htm#a7>

        Grüße,

        Utz

        1. Hallo,

          und um noch zu ergänzen woher der Fehler im Netsi kommt:

          Ob das nun ein 'Fehler' ist, ist wirklich fraglich.

          Tatsache ist doch, daß der ganze Thread sich einfach nur darum dreht, daß Browser etwas machen, das den 'Webdesignern' sowas von überhaupt nicht passt, daß es sofort verschwinden muß.
          Ich persönlich halte dieses herumgedoktere an den Darstellungen innerhalb von Browsern nicht gerade zielführend. Ich denke, daß sich hier die Leute viel zu viel GEdanken um nebensächliches machen.
          Mich erinnert das stark an die Sache mit den 'nicht unterstrichenen Links'. Dabei werden auch _bewußt_ optische Hilfen außer Kraft gesetzt, die eigentlich äußerst hilfreich in der Navigation sind.

          Was mich belustigt daran ist, daß meist zuerst versucht wird, diesen Rahmen zu entfernen, um danach wieder Verrenkungen zu machen, um die gerade gewählten Links wieder zu markieren. Und weil jeder eine andere Vorstellung davon hat, wie es 'richtig' ist, kann ich mich bei jeder Site wieder von neuem lernen, wie das da wohl gemeint ist.
          Und so wird schön langsam das Web zum Adventure, anstelle Quelle des Wissens zu sein. Schöne neue Welt;-)

          Grüße
            Klaus

          1. Hi Klaus,

            ich glaube, Du prügelst hier auf den Falschen ein. Versuchs doch nächstens mit Lesen der Postings, bevor Du den großen Hammer rausholst.

            Grüße,

            Utz

            1. Hallo Utz,

              ich glaube, Du prügelst hier auf den Falschen ein. [...]

              Ich will hier gar niemand prügeln. Ich nahm einfach nur Deine Einleitung bezüglich 'Fehler im Netsi' als Ausgangspunkt.
              Entschuldige, wenn es falsch bei Dir angekommen ist. Eigentlich hatte ich das ganze eher als allgemine Meinungsäußerung verstanden, ohne jemanden dirket ansprechen zu wollen.

              Grüße
                Klaus

              PS.: ich werde in Zukunft wohl etwas differenzierter in der Anrede sein müssen, um solche Mißverständisse zu vermeiden.

              1. Hi Klaus,

                Ich will hier gar niemand prügeln. Ich nahm einfach nur Deine Einleitung bezüglich 'Fehler im Netsi' als Ausgangspunkt.

                Es ging hier ja drum, Y eine Fehlermeldung des Netsi zu erklären, die er nicht verstand.

                Entschuldige, wenn es falsch bei Dir angekommen ist.

                Schon ok.

                Grüße,

                Utz

          2. Hi,

            es ist wohl Ansichtssache wo sowas sinnvoll ist oder nicht.
            Zudem sollte man nicht glauben, eine allgemeine Darstellungsvorschrift sei so toll, man soll _frei_ nach seinen Vorstellungen designen können. Beim erstellen eines Bildes oder einer Grafik werden mir ja auch keine Vorschriften gemacht.

            Gruß

            Y

            1. Hallo Y,

              es ist wohl Ansichtssache wo sowas sinnvoll ist oder nicht.

              Allgemeine Regeln im Layout von Websites sollte nicht Ansichtssache sein. Ist vielleicht etwas dastisch der Vergleich, aber es ist grundsätzlich auch möglich, in Deutschland jede Starße auf der linken Seite zu befahren, rein technisch spricht ja nichts dagegen. Aber trotzdem handelt sich jeder dabei irgendwann ziemlich viel Kopfweh ein;-)

              Publikationen im Web dienen eigentlich dazu, von Anderen gelesen zu werden. Und da ist es zumindest ein Zeichen des Respekts, sich an allgemein gültige Regeln zu halten.

              Und Freiraum für die Gestaltung bleibt da noch genug.

              Grüße
                Klaus

            2. Zudem sollte man nicht glauben, eine allgemeine Darstellungsvorschrift sei so toll, man soll _frei_ nach seinen Vorstellungen designen können.

              Vor allem sollte man aber nicht glauben, es sei so toll, dem Benutzer die Funktionalitaet seines Browsers einzuschraenken.

              Beim erstellen eines Bildes oder einer Grafik werden mir ja auch keine Vorschriften gemacht.

              So direkt nicht, trotzdem solltest Du Dich an gewisse Regeln halten. Oder haelst Du z.B. dunkelblaue Schrift auf schwarzem Hintergrund fuer sinnvoll?

              So long

  2. Tach!

    Also dann nochmal.

    Bsp: Ich benutze <a href="..." onClick="this.blur()"> um den Markierungsrahmen nach klicken des Links zu entfernen. Im IE
    wird das anstandslos gemacht. Im Netscape Com. wird es zwar auch gemacht, jedoch kommt noch ein Javascriptfehler mit: this.blur is not an Object, warum das?

    In einem Handler im A-Tag bezieht sich das 'this' auf ein Link-Objekt (http://developer.netscape.com/docs/manuals/js/client/jsref/link.htm). Eine Link.blur()-Methode gibt es nicht (beim Netscape), was je nach Betrachtungsweise auch relativ logisch ist. Fuer welche Elemente es blur() gibt, siehst Du, wenn Du auf (http://developer.netscape.com/docs/manuals/js/client/jsref/bklast.htm) zu blur scrollst.

    Wie auch immer, fuer Netscape brauchst Du das blur sowieso nicht, weil nicht solche bescheuerten Rahmen malt. Haette Dir eigentlich beim Testen auffallen sollen. Also nimm einfach den von Stefan verlinkten Code und diskutier nicht sinnlos rum.

    So long

    1. Hallo Calocybe,

      Also nimm einfach den von Stefan verlinkten Code und diskutier nicht sinnlos rum.

      für diesen Satz gilt Dir mein ganzer Dank. So langsam hatte ich das
      Gefühl, dass es nie ein Ende nimmt (die sinnarme Diskussion) mit Y.

      Aber trotzdem werde ich jetzt erstmal eine Forumspause einlegen ...

      Viele Grüße aus Dresden,
      Stefan Einspender
      der jetzt vom Diskutieren über weggelassene Abfrage in Workarounds
      ziemlich genervt ist ;)