matze: Link deaktivieren

Hallo!
Gibt es eine Möglichkeit in bestimmten Fällen einen Link zu deaktivieren?

also so ungefär

window.opener.document.formularname.linkname= false;

  1. Hallo Matze,

    Gibt es eine Möglichkeit in bestimmten Fällen einen Link zu deaktivieren?

    Eigentlich eine schoene Anwendung fuer DOM - und siehe da, im Mozilla funktioniert es auch wie gewuenscht. Kleine Datei zum Testen:

    <html><head><title></title></head>
    <script type="text/javascript">
    function deaktivieren() {
     document.getElementById("Testlink").removeAttributeNode(document.getElementById("Testlink").attributes[1]);
    }
    function aktivieren() {
     var href = document.createAttribute("href");
     href.nodeValue = "index.htm";
     document.getElementById("Testlink").setAttributeNode(href);
    }
    </script>
    <body>
    <p><a id="Testlink" href="index.htm">Test</a></p>
    <p>
    <a href="javascript:deaktivieren()">deaktivieren</a><br>
    <a href="javascript:aktivieren()">aktivieren</a><br>
    </p>
    </body>
    </html>

    Leider nicht in IE6 und Opera. Beim IE ist allerdings alles kein Problem, da kann man sich mit dem all-Objekt und der Eigenschaft outerHTML behelfen.

    Oder man versucht es ueber die HTML-Elementobjekte (wieder DOM, aber naeher an HTML). Die folgende Variante funktioniert sowohl mit Mozilla als auch mit IE:

    <html><head><title></title></head>
    <script type="text/javascript">
    function deaktivieren() {
     document.getElementById("Testlink").href="#";
     document.getElementById("Testlink").style.textDecoration="none";
    }
    function aktivieren() {
     document.getElementById("Testlink").href="index.htm";
     document.getElementById("Testlink").style.textDecoration="underline";
    }
    </script>
    <body>
    <p><a id="Testlink" href="index.htm">Test</a></p>
    <p>
    <a href="javascript:deaktivieren()">deaktivieren</a><br>
    <a href="javascript:aktivieren()">aktivieren</a><br>
    </p>
    </body>
    </html>

    viele Gruesse
      Stefan Muenz

    1. hi,

      ich bastele ja auch gerne mit DOM herum, aber in diesem Falle kannst Du es imho einfacher haben:

      <html>
      <head>
      <script language="javascript1.2">
      var go = 1;
      function check(){return go? true : false;}
      </script>
      </head>
      <body>

      <a href="#" onclick="go=0; return false;">aus</a>
      <a href="#" onclick="go=1; return false;">an</a>
      <br><br>
      <a href="lala.htm" onclick="return check()">link</a>

      </body>
      </html>

      Gruesse  Joachim

      1. Hallo Joachim,

        das Script ist richtig pfiffig! ;-)
        Allerdings wuerde es mich als Anwender stoeren, wenn der Link so aussieht, als ob er funktionieren wuerde, und nach Deaktivierung aber gar nicht funktioniert. Und wenn du irgendwie das Aussehen des Links veraendern willst, dann musst du halt doch wieder auf das a-Element dynamisch zugreifen, sei es mit DOM oder alter IE-Syntax.

        viele Gruesse
          Stefan Muenz

        1. hi Stefan,

          Allerdings wuerde es mich als Anwender stoeren, wenn der Link so aussieht, als ob er funktionieren wuerde, und nach Deaktivierung aber gar nicht funktioniert.

          das ist wohl war, daher schnell nachgebessert (fuer Dom-Browser) =8-]

          Gruesse  Joachim

          <html>
          <head>
          <script language="javascript1.2">
          var go = 1;
          function check()
          {
           return go? true : false;
          }

          function changeStat(stat, id)
          {
           go    =  stat;
           if(document.getElementById){
            if(!go) document.getElementById(id).style.textDecoration =  "none";
            else    document.getElementById(id).style.textDecoration =  "underline";
           }
          }

          </script>
          </head>

          <body>
          <a href="#" onclick="changeStat(0, 'myLink'); return false;">aus</a>  <a href="#" onclick="changeStat(1, 'myLink'); return false;">an</a><br><br>
          <a id="myLink" href="lala.htm" onclick="return check()">link</a>

          </body>
          </html>