Roland: Links per JS ändern

hi!

Wie kann ich per js den link bei einem bild ändern bzw. was stimmt hier nicht?

=>
[lang=html]
<head>
 <script language="JavaScript" type="text/JavaScript">
   function switchLink(Nr) {
    if (Nr=="1") { document.link.onclick.value = "test(1)"; }
    if (Nr=="2") { document.link.onclick.value = "test(2)"; }
   }
 </script>
</head>
<body>
<a href="#" onclick="test()" id="link"><img src="..."></a>
</body>
[/lang]

DANKE
Roland

  1. hallo,

    function switchLink(Nr) {
    onclick="test()"

    Es könnte nützlich sein, eine Funktion aufzurufen, die es gibt.

    Grüße aus Berlin

    Christoph S.

    --
    Visitenkarte
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
    1. Hi Christoph!

      Is dir denn nicht aufgefallen, dass ich den code auf das wesentliche gekürzt hab? die img-src heißt ja auch nicht "..." ;-)
      Aber welche funktion aufgerufen wir is doch egal, es sollte sich nur der onclick ändern, wenn die funktion switchLink(2) aufgerufen wird ;-)

      lg
      Roland

      1. hallo,

        Is dir denn nicht aufgefallen, dass ich den code auf das wesentliche gekürzt hab?

        Ist dir denn nicht aufgefallen, daß ich für meine Antwort deine Fragestellung auf das wesentliche gekürzt habe?

        Grüße aus Berlin

        Christoph S.

        --
        Visitenkarte
        ss:| zu:) ls:& fo:) va:) sh:| rl:|
      2. Hi,

        Is dir denn nicht aufgefallen, dass ich den code auf das wesentliche gekürzt hab?

        auch dann sollte der Code in sich stimmig sein.

        Aber welche funktion aufgerufen wir is doch egal, es sollte sich nur der onclick ändern, wenn die funktion switchLink(2) aufgerufen wird ;-)

        Dir ist bewußt, daß "2" und 2 völlig verschiedene Werte sind?
        text/JavaScript ist übrigens auch kein gültiger mime-typ und was document.link soll, weiß ich erst recht nicht.

        freundliche Grüße
        Ingo

        1. Hello out there!

          text/JavaScript ist übrigens auch kein gültiger mime-typ

          Doch. “All media type values, subtype values, and parameter names as defined are case-insensitive.” [RFC2045]

          (Es sei denn, du meintest, dass 'text/javascript' obsolet ist und stattdessen 'application/javascript' bzw. 'application/ecmascript' registriert sind. Äh nein, glaub nicht, dass du das meintest. Diese Typen funktionieren in Browsern (noch) nicht.)

          See ya up the road,
          Gunnar

          --
          “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
          1. Hi,

            Doch. “All media type values, subtype values, and parameter names as defined are case-insensitive.” [RFC2045]

            Danke fürs raussuchen. Ich hatte wohl zu sehr die Konventionen von XHTML verinnerlicht...

            freundliche Grüße
            Ingo

  2. Hallo Roland.

    <head>
    <script language="JavaScript" type="text/JavaScript">
       function switchLink(Nr) {
        if (Nr=="1") { document.link.onclick.value = "test(1)"; }
        if (Nr=="2") { document.link.onclick.value = "test(2)"; }
       }
    </script>
    </head>
    <body>
    <a href="#" onclick="test()" id="link"><img src="..."></a>
    </body>

      
    Wie Christoph schon bemerkte, musst du due „switchLink“-Funktion schon aufrufen.  
      
    Aber die Funktion selbst ist stark überarbeitungswürdig. Du stützt dich auf das veraltete document.all; nutze lieber die document.<http://de.selfhtml.org/javascript/objekte/links.htm@title=links>-Kollektion, um auf den jeweiligen Link zuzugreifen.  
      
    Des weiteren verfügt die onclick-Eigenschaft über keine value-Eigenschaft, welcher du einen Wert zuweisen könntest. Du kannst der onclick-Eigenschaft entweder eine Referenz auf eine Funktion zuweisen:  
      
    ~~~javascript
    function foo() {  
      alert('FOO');  
    }  
      
    objekt.onclick = foo;
    

    Oder aber, wenn du wie hier einen Wert übergeben möchtest, eine anonyme Funktion verwenden:

    objekt.onclick = function() {  
      test(1);  
    };
    

    Und nun musst du uns nur noch die Funktion „test“ zeigen und überhaupt erst einmal beschreiben, was das ganze am Ende bewirken soll.

    Einen schönen Freitag noch.

    Gruß, Ashura

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
    [HTML Design Constraints: Logical Markup]