Max: Was ist an "<a href="javascript:...." so schlimm?

Hallo.
Des Öfteren wurde ich (und viele andere) hier im Forum aufgefordert, statt <a href="javascript:Test()"... doch lieber <a href="#" onClick="Test(); return false"> zu benutzen.
Jetzt _muss_ ich aber "javascript:..." benutzen, da ich einem Link unter verschiedenen Umständen andere Funktionen zuordnen muss. Mit getElementById("bla").onClick klappt das irgendwie nicht richtig.

Nun möchte ich trotzdem wissen, was an der "javascript:..."-Methode so schlimm ist? Ist das nur dafür da, das User, die kein JS unterstützen, trotzdem eine Seite aufrufen können?

MfG

Max

  1. Hallo!

    Jetzt _muss_ ich aber "javascript:..." benutzen, da ich einem Link unter verschiedenen Umständen andere Funktionen zuordnen muss. Mit getElementById("bla").onClick klappt das irgendwie nicht richtig.

    Den Grund hab ich jetzt aber nicht kapiert..

    Ist das nur dafür da, das User, die kein JS unterstützen, trotzdem eine Seite aufrufen können?

    Ja, soisses. Außerdem reagieren alte (uralte) Browser mit einer lästigen Fehlermeldung, die auf diese Art vermieden wird.

    tschüs, jürgen

    1. hallo, ja dann können wir javascript doch mal abschaffen,wenn alle was dagegen haben nicht? <a href="javascript:window.close()">ich habe fertig</a> Grüsse vom Alain

      --
      ...
  2. Hi Max,

    Des Öfteren wurde ich (und viele andere) hier im Forum aufgefordert, statt <a href="javascript:Test()"... doch lieber <a href="#" onClick="Test(); return false"> zu benutzen.

    Nein, # ist kein Linkziel.

    Jetzt _muss_ ich aber "javascript:..." benutzen, da ich einem Link unter verschiedenen Umständen andere Funktionen zuordnen muss.

    Was passiert hier ohne Javascript?

    Mit getElementById("bla").onClick klappt das irgendwie nicht richtig.

    http://selfhtml.teamone.de/javascript/objekte/htmlelemente.htm#a
     -> http://selfhtml.teamone.de/javascript/objekte/anzeige/htmlelemente_a.htm

    Biete alle möglichen Verweise auch als normale <a>-Tags an, da die Seite ohne Javascript sonst nicht funktioniert.

    Grüße,
     Roland

    --
    http://my.opera.com/dev/articles/20030519/
    http://aktuell.de.selfhtml.org/tippstricks/beitrag.htm
    selfcode = ss:| zu:} ls:} fo:} de:> va:} ch:| sh:) n4:& rl:| br:< js:{ ie:{ fl:{ mo:|
  3. Hallo Max,

    Jetzt _muss_ ich aber "javascript:..." benutzen,

    Das glaube ich nicht.

    da ich einem Link unter verschiedenen Umständen andere Funktionen zuordnen muss. Mit getElementById("bla").onClick klappt das irgendwie nicht richtig.

    Was das mit »javascript:« im href-Attribut zu tun hat, ist mir zwar schleierhaft, da sich das, was du vorhast, auch sicherlich anders und über den Event-Handler onclick lösen lässt, aber falls du über JavaScript einem beliebigen Element einen Event-Handler zuweisen willst, worauf dein Beispiel hinweist, ist dies durchaus möglich, und zwar beispielsweise folgendermaßen:

    <html>
    <head>
    <script type="text/javascript">
    function bla () {window.alert('gedrückt');}
    </script>
    </head>
    <body onload="document.getElementById('bla').onclick=bla;">

    <p id="bla">This page is intentionally left blank.</p>

    </body>
    </html>

    Das ist dasselbe wie onclick="bla()" im p-Element, nur wird der Handler über JavaScript vergeben. »onclick« wird also klein geschrieben! document.getElementById('bla').onClick=bla würde nichts bringen.

    Mathias

    --
    ss:¬ zu:¬ ls:¬ fo:¬ de:¬ va:¬ ch:¬ sh:¬ n4:¬ rl:¬ br:¬ js:¬ ie:¬ fl:¬ mo:¬
    Auflösung != Desktopgrösse != Browserfenstergrösse != Anzeigebereich. [psf 3.7]
  4. Ok, da ihr den Grund wissen wollt:
    Der richtige Link: http://www.mastershrimp.com/kalender.html
    Die JS-Datei: http://www.mastershrimp.com/kalender.js
    Die 2. JS-Datei: http://www.mastershrimp.com/Untertitel.js

    Schaut's euch mal in der ersten JS-Datei an. Mittlerweile gehts allerdings auch ohne javascript:. Ist also alles wieder schön ;)

    Richtig auf die Frage eingegangen ist ja leider nur jürgen j. Egal, das war eigentlich alles was ich wissen wollte. Danke!

    Ach übrigens: Wenn ihr den Kalender mal ausprobiert habt, werdet ihr sicher gemerkt haben, dass er nich ganz funktioniert. Ich versuchs mal hinzukriegen. Ich weiß glaub ich woran's liegt.

    1. Ach übrigens: Wenn ihr den Kalender mal ausprobiert habt, werdet ihr sicher gemerkt haben, dass er nich ganz funktioniert. Ich versuchs mal hinzukriegen. Ich weiß glaub ich woran's liegt.

      Ups. Naja, Fehlalarm. War in <1 Min korrigiert. Wenn ihr trotzdem ein Fehlverhalten feststellen konntet, würde ich mich freuen, wenn ihr es mir mitteilt - am besten auch mit Lösung ;)

      Gruß

      Max

  5. Hallo.
    Des Öfteren wurde ich (und viele andere) hier im Forum aufgefordert, statt <a href="javascript:Test()"... doch lieber <a href="#" onClick="Test(); return false"> zu benutzen.

    javascript: ist nicht schlimm sondern in der Regle unnötig.

    Da deine Siete sowieso komplett mit JS erstellt wird wäre es sogar egal, aber...

    Jetzt _muss_ ich aber "javascript:..." benutzen, da ich einem Link unter verschiedenen Umständen andere Funktionen zuordnen muss. Mit getElementById("bla").onClick klappt das irgendwie nicht richtig.

    Das ist quatsch. Es ist leichter das onclikc event nachträglich zuzuweisen als irgendetwas mit href=javascript:...

    Du suchst evtl. sowas:

    JS
    --------

    function test()
    {
        alert(debug(this));
    }
    function debug(o)
    {
       text = '';
       for(var i in o) {text += i + "=" + o[i] + "\n";}
       return text;
    }

    window.onload = function () { document.links[0].onclick=test; };

    HTML
    -------
    <a href="#">Dies ist ein Test</A>

    Struppi.

    1. Ich wusste ehrlich gesagt gar nicht, dass man nachträglich Event-Handler hinzufügen kann.....Naja, man lernt nie aus.
      Danke!