Jan W.: Warum verwenden eigentlich so viele noch href="javascript:..."?

Hallo,

Ich frage mich, warum jeder Neuling statt des empfohlenen onclick="..." lieber href="javascript:..." benutzt, obwohl das Leute ohne JavaScript ausschließt.

Ein Unding ist es auch, wenn Leute zwar onclick benutzen, aber ohne Not dann href="#" verwenden. Ich sage Euch: es gibt immer eine Lösung ohne diese verdammte Raute.

Warum ändert man das nicht in SelfHTML? Jeder halbwegs Erfahrene in diesem Forum würde es doch anders machen?

Jan W.

  1. Hallo,

    Erst gestern ist mir aufgefallen, dass sogar in Feature-Artikeln (der Name ist etwas komisch, da er übersetzt Merkmal-Artikel heißt, naja) diese Raute auftaucht: http://aktuell.de.selfhtml.org/artikel/css/mouseover/index.htm. Die müssten sich doch eigentlich damit beschäftigt haben )-:

    Heiner

    1. hallo Heiner,

      Erst gestern ist mir aufgefallen, dass sogar in Feature-Artikeln (der Name ist etwas komisch, da er übersetzt Merkmal-Artikel heißt, naja) diese Raute auftaucht: [...]

      also grundsätzlich nehme ich deinen wahn, dem forum die deutsche sprache näher bringen zu müssen, ja mit einem schmunzeln zur kenntnis - aber wenn es langsam darin ausartet, dass du durch solche falschaussagen deine eigene glaubwürdigkeit untergräbst, mache ich mir doch sorgen um dich ...

      die englische bezeichnung "feature article" ins deutsche übersetzt, bedeutet laut linguadict.de "Feuilleton" - ein begriff, der für den bereich, den die feature artikel in selhftml darstellen, m.e. eigentlich ganz passend ist.

      des weiteren könnte man "(to) feature" auch noch mit "bringen", "näher bringen" übersetzen - auch das passt für die selfhtml feature-artikel ganz gut, da sie eben dazu dienen, den leuten dinge näher zu bringen, die über den inhalt von selfhtml als nachschlagewerk für html & co. hinausgehen.

      dass die englische wendung "feature article" zu "feature-artikel" eingedeutscht wurde, erscheint mir auch nur logisch - es ist halt einfach, wie du es letzte tage vom "aufklappfenster" behaupten wolltest, in den sprachgebrauch übergegangen.

      gruss,
      wahsaga

  2. Hi,

    Ich frage mich, warum jeder Neuling statt des empfohlenen onclick="..." lieber href="javascript:..." benutzt, obwohl das Leute ohne JavaScript ausschließt.

    weil der Neuling sich nicht der Tatsache bewusst ist, dass JavaScript einem Großteil der Besucher nicht zur Verfügung steht.

    Ein Unding ist es auch, wenn Leute zwar onclick benutzen, aber ohne Not dann href="#" verwenden. Ich sage Euch: es gibt immer eine Lösung ohne diese verdammte Raute.

    Es existieren Fälle, in denen <a href="javascript:..."> und <a href="#" onClick="..."> bzw. <a href="javascript:void(0)" onClick="...">[1] ihre Daseinsberechtigung haben. In diesen Fällen sollte der Link selbst aber mit JavaScript herausgeschrieben worden sein, und: Diese Fälle sind selten.

    Warum ändert man das nicht in SelfHTML? Jeder halbwegs Erfahrene in diesem Forum würde es doch anders machen?

    In der Regel schon. Am besten meldest Du solche Dinge unter http://selfhtml.teamone.de/editorial/fehlermeldungen.htm bzw., da es sich nicht wirklich um einen Fehler handelt, unter http://selfhtml.teamone.de/editorial/feedback.htm.

    Cheatah

    [1] Sinnvoll z.B. bei allgemeingültig gelösten DOM-Zugriffen auf den onclick-Handler.

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  3. ... also ich benutze dein angeschwärztes konstrukt auch noch immer, da nicht jeder browser das style="cursor : hand;" unterstützt, und somit ein element, das kein link ist, dennoch eine klick-funktion besitzt von der maus her nicht zu erkennen ist (es sei denn man verweist irgendwie idiotensicher darauf hin). ich würds gern unterlassen, und wenn jemand eine lösung hat dann her damit!

    cya kaltauer

    1. Mache es doch wie beschrieben mit onclick und schreibe den Link zusätzlich ins href="..." und frage das bei onclick mit this.href ab!

      Und da nur alte Browser die Eigenschaft cursor nicht unterstützen und diese nicht überlebenswichtig ist, würde ich sie verwenden statt nur ihretwegen gleich zahlreiche Browser komplett von der Navigation auszuschließen. Erkennst Du da nicht selbst einen Widerspruch?

      Jan

      1. Mache es doch wie beschrieben mit onclick und schreibe den Link zusätzlich ins href="..." und frage das bei onclick mit this.href ab!

        heisst das jetzt, selbst wenn in einem browser js abgeschaltet ist, wird dennoch das "this.href" abgearbeitet?

        Und da nur alte Browser die Eigenschaft cursor nicht unterstützen und diese nicht überlebenswichtig ist

        aus usability-gründen muss ein link als link zu erkennen sein. und bei nicht-text-links sollte das ein veränderter mauszeiger sein.

        1. Hi,

          heisst das jetzt, selbst wenn in einem browser js abgeschaltet ist, wird dennoch das "this.href" abgearbeitet?

          nein, dann verbleibt der ganz normale Link.

          aus usability-gründen muss ein link als link zu erkennen sein. und bei nicht-text-links sollte das ein veränderter mauszeiger sein.

          Auch das passiert beim Einsatz des <a>-Elements.

          Cheatah

          --
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
        2. heisst das jetzt, selbst wenn in einem browser js abgeschaltet ist, wird dennoch das "this.href" abgearbeitet?

          Nein, aber das href="verweis.html" wird abgearbeitet, genau das liest Du mit this.href ja auch aus.

          aus usability-gründen muss ein link als link zu erkennen sein. und bei nicht-text-links sollte das ein veränderter mauszeiger sein.

          Aus "Usability"-Gründen sollte die Navigation auch ohne JavaScript funktionieren. Das ist oberste Priorität. Deine Variante funktioniert nur mit JavaScript und da hilft Dir dann auch die Hand nicht mehr viel.

          Jan W.

          1. .. jetzt versteh ich gar nichts mehr. der ausgang war die beschwerde, dass <a href="javascript:.."> benutzt wird, statt des onclick. wenn ich das "javascript:" einsetze, rufe ich damit z.b. eine funktion auf, die nunmal js ist.
            wenn ich diesen aufruf jetzt ins onclick verlagere, hat sich doch nichts geändert, es ist äquivalent zum "javascript:"-aufruf. in beiden fällen muss der user js aktiviert haben...

            und daher meinte ich, ich nutze das konstrukt auch. wenn ich ein bild eine js-funktion ausführen lassen möchte, könnte ich es direkt mit dem onclick machen. oder, um den mauszeiger gleichzeitig zu verändern, das bild mit dem <a> einschliessen und mit "href='javascript:' die funktion starten lassen.

            insofern hat das nichts mit einer navigation zu tun, die auch ohne js funktionieren soll. die ausgangsfrage zielte durch die beschwerde über die verwendung des "href='javascript:'" doch eh darauf ab, das js aktiviert sein muss ...

            cya

            1. Ich verdeutliche es mal an einem Beispiel.

              Oft wird ein Popup-Fenster auf folgende Weise geöffnet:

              <a href="javascript:oeffneFenster(datei.html);">Link</a>

              Dadurch dass man ins href das javascript: gesetzt hat, kann man diesen Link nicht mehr für andere Dinge verwenden. Wenn Du aber:

              <a href="datei.html" target="_blank" onclick="oeffneFenster(this.href); return false;">Link</a>

              einsetzt, dann kannst Du für alle Nicht-JavaScript-Nutzer das Fenster wenigstens normal, also zwar nicht als Popup aber halt in einem neuen Browserfenster öffnen lassen. Das mag zwar eine Minderheit sein, aber auch die hat ein Recht aufs Stöbern im Web :-)

              Diese Möglichkeit des alternativen Nutzen von href verschenkt man, wenn man stattdessen:

              <a href="#" target="_blank" onclick="oeffneFenster(datei.html);return false;">Link</a>

              notiert. Dafür gibt es keinen Grund!

              Es gibt für fast jede JavaScript-Lösung auch eine halbwegs funktionierende Alternative ohne JavaScript. Warum sollte man die nicht einsetzen?

              Jan W.

              1. .. ja ok, dann schreib aber auch genau das zum thema.

                ich will es nicht sonderfall nennen, dennoch hast du mit der threatbeginn "<a href="javascript: .." auf so ziemlich alles allgemeine mit der verwendung von javascript angespielt. und mein beispiel verdeutlicht damit auch den eher größeren anteil der verwendung genau dieses konstrukts. denn er ist nunmal direkt auf aktiviertes js gemünzt.

                deine problemkritik mit dem pop-aufruf habe ich schon in einen früheren artikel gelesen und interessiert zur kenntnis genommen bzw. werde ihn zukünftig gern so umsetzen. aber bei reinen js-aufrufen, z.b. mouseover, dürftest du kaum einen nicht-javascript-lösung anbieten können. ob nun mit onclick oder href="javascript:" ...

                cya kaltauer

                1. hi,

                  aber bei reinen js-aufrufen, z.b. mouseover, dürftest du kaum einen nicht-javascript-lösung anbieten können. ob nun mit onclick oder href="javascript:" ...

                  ein effekt, der durch onMouseover ausgelöst werden soll, hat mit href="javascript:..." überhaupt nichts am hut - und da schreibst du weiter oben, dass Jan sich genauer auf das thema beziehn soll ...?

                  gruss,
                  wahsaga

                  1. ein effekt, der durch onMouseover ausgelöst werden soll, hat mit href="javascript:..." überhaupt nichts am hut

                    stimmt, da hst du recht.

                    cya kaltauer

                2. Mhhh. Aber genau dafür gibt es doch onmouseover="...". Also alles andere als ein Argument für href="#" oder href="javascript:..." Oder verstehe ich Dich jetzt falsch?

                  Jan.

    2. Hi,

      da nicht jeder browser das style="cursor : hand;" unterstützt,

      Warum sollten Browser so etwas unterstützen? Das ist ja kein gültiges CSS (Du meinst vermutlich cursor:pointer; )

      cu,
      Andreas

      --
      Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
      http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
  4. hey! danke! ich bin nie drauf gekommen wie man es "richtig" macht!

    <a href="popup.html" onclick="popup(this.href,'name',500,800); return false;">pop mal wieder</a>