KeinBlase: Mit Onclick Href übersteuern

Hallo Zusammen

Ich habe folgenden Code:

function onclickUrl(href){  
window.location.href = href;  
alert('');  
}
  
<a href="HREF-URL" onClick="Javascript:onclickUrl('onClick-URL');">as</a>  

Ich möchte mit onClick die Angabe im Href Feld übersteuern. Dies geht soweit auch, jedoch nur, wenn ich nach dem window.location.href = href; aufruf in meiner JS Funktion "onclickUrl" ein alert() ausführe. Ansonsten wird die HREF-URl aufgerufen.

Wie kann ich machen, dass die window.location.href = href; funktioniert, ohne dass ich ein Alert() ausgeben muss?

Vielen Dank und Gruss

  1. Ich habe folgenden Code:

    function onclickUrl(href){

    window.location.href = href;
    alert('');
    }

    
    >   
    > ~~~xml
      
    
    > <a href="HREF-URL" onClick="Javascript:onclickUrl('onClick-URL');">as</a>  
    > 
    
    

    D.h. erst wird der onclick Event aufgerufen, dann die URL in href.

    Wie kann ich machen, dass die window.location.href = href; funktioniert, ohne dass ich ein Alert() ausgeben muss?

    In dem du verhinderst, dass die normale Funktionalität ausgeführt wird, in dem du ein return false einbaust.

    function onclickUrl(href){  
    window.location.href = href;  
    return false;  
    }
    
      
    <a href="HREF-URL" onClick="return onclickUrl('onClick-URL');">as</a>  
    
    

    (Das Label javascript: war hier überflüssig)

    Struppi.

  2. Hallo...
    Komischer Fehler, den du da hast... Probiers mal so:

    function onclickUrl(href){

    window.location.href = href;
    alert('');
    }

    
    >   
    > ~~~xml
      
    
    > <a href="HREF-URL" onClick="Javascript:onclickUrl('onClick-URL');">as</a>  
    > 
    
    

    Gib dem Link einfach einen "Namen", z.B. so:
    <a href="HREF-URL" id="link1" onClick="Javascript:onclickUrl('onClick-URL');">as</a>
    Das Javascript musst du dann nur noch so ändern:

    function onclickUrl(href){  
    document.getElementById("link1").href = href;  
    }
    

    Vielleicht würde es auch schon helfen, wenn du die Variable href umbenennst, weil href ja eigentlich keine Variable ist...

    1. Mahlzeit m-m,

      Komischer Fehler, den du da hast... Probiers mal so:

      Das sollte KeinBlase besser nicht probieren - Dein Code ist in zweierlei Hinsicht mehr als mangelhaft:

      <a href="HREF-URL" onClick="Javascript:onclickUrl('onClick-URL');">as</a>

      1.) Die Angabe eines Labels in einem Eventhandler ist unnötig und nicht sinnvoll.

      Das Javascript musst du dann nur noch so ändern:

      function onclickUrl(href){

      document.getElementById("link1").href = href;
      }

        
      2\.) In eine Javascript-Funktion, die wohlmöglich wiederverwendbar sein soll, feste Zugriffe auf bestimmte Formularelemente einzubauen, ist meistens keine gute Idee.  
        
        
      
      > Vielleicht würde es auch schon helfen, wenn du die Variable href umbenennst, weil href ja eigentlich keine Variable ist...  
        
      Stimmt. Es handelt sich um einen Funktionsparameter. Dieser ist aber - oh Wunder - im lokalen Kontext der Funktion eine Variable.  
        
        
      MfG,  
      EKKi  
      
      -- 
      sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
      
    2. Komischer Fehler, den du da hast...

      Wieso komisch? Es ist der Lauf der Dinge wie ich ihn bereits erklärt habe. Und dies läßt sich auch einfach beheben.

      Gib dem Link einfach einen "Namen", z.B. so:
      <a href="HREF-URL" id="link1" onClick="Javascript:onclickUrl('onClick-URL');">as</a>
      Das Javascript musst du dann nur noch so ändern:

      function onclickUrl(href){

      document.getElementById("link1").href = href;
      }

        
      Das ist zwar auch eine Möglichkeit, aber doch eher durch die Brust in's Knie geschossen. Dieser Weg liesse sich einfacher so umsetzen:  
        
      `<a href="HREF-URL" onclick="this.href='onClick-URL';">as</a>`{:.language-html}  
        
      Struppi.