peterS.: onclick, onmouseover nachträglich hinzufügen

Beitrag lesen

gruss Alex,

... Das Problem liegt darin, die "alte Funktion" des onClick Ereignisses
auszulesen bzw. in die neue Kombination einzubinden...

Struppi hat sich dazu ja schon geaeussert -
   https://forum.selfhtml.org/?t=95368&m=578477

ansonsten kenne ich keine Wege einen neuen onClick zu generieren.

in den zur zeit gaengigsten browsern stehen Dir dafuer die methoden
   "addEventListener" (z.b.: mozillas) bzw. "attachEvent" (msie,opera)
   zur verfuegung  -  aufklaerung erfolgt anhand eines arbeitsbeispiels:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>

<head>
    <title>addEventListener.html</title>
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
    <meta http-equiv="content-script-type" content="text/javascript">
    <script type="text/javascript">
      function linkOver(linkObj) {
        window.top.status = "mouseover: " + ((linkObj.text) ? (linkObj.text) : ((linkObj.innerText) ? (linkObj.innerText) : (linkObj)));
        return true;
      }
      function linkOut(linkObj) {
        window.top.status = "mouseout: " + ((linkObj.text) ? (linkObj.text) : ((linkObj.innerText) ? (linkObj.innerText) : (linkObj)));
        return true;
      }
      function linkClick(linkObj) {
        alert("click: " + ((linkObj.text) ? (linkObj.text) : ((linkObj.innerText) ? (linkObj.innerText) : (linkObj))));
        return false;
      }

function additionalLinkClick() {
        alert("document.links.length = " + document.links.length);
      }
      var addClickEvents;

if (window.attachEvent) { // msie, opera;

alert("window.attachEvent");
        addClickEvents = function() {
          for (var i=0; i<document.links.length; ++i) {
            document.links[i].attachEvent("onclick",additionalLinkClick);
          }
        };
        window.attachEvent("onload",addClickEvents);

} else if (window.addEventListener) { // mozilla;

alert("window.addEventListener");
        addClickEvents = function() {
          for (var i=0; i<document.links.length; ++i) {
            document.links[i].addEventListener("click",additionalLinkClick,true);
          }
        };
        window.addEventListener("load",addClickEvents,true);
      }
    </script>
  </head>

<body>
    <p>
      <a href="#" onmouseover="return linkOver(this)" onmouseout="return linkOut(this)" onclick="return linkClick(this)">link 01</a><br>
      <a href="#" onmouseover="return linkOver(this)" onmouseout="return linkOut(this)" onclick="return linkClick(this)">link 02</a><br>
      <a href="#" onmouseover="return linkOver(this)" onmouseout="return linkOut(this)" onclick="return linkClick(this)">link 03</a><br>
    </p>
  </body>

</html>

by(t)e by(t)e - peterS. - pseliger@gmx.net

--
ie:( fl:) br:> va:| ls:& rl:| n4:} ss:} de:µ js:} zu:]