dedlfix: Eventhandler im HTML-Attribut zuweisen

Hallo!

Wie notiert man in einem HTML-Eventhandler-Attribut den Aufruf einer Eventhandler-Funktion, so dass man an das Event-Objekt kommt?

<element id="idElement" onevent=" ? " />

function eventhandler(ev) {  
  if (!ev) // IE-Workaround  
    ev = window.event  
  alert(ev.keyCode)  
}

Schreibt man
  document.getElementById('idElement').onclick = eventhandler
bekommt eventhandler() (zumindest im FF) beim Aufruf ein Argument mit dem Ereignis-Objekt übergeben, in meinem Beispiel ev genannt. Das funktioniert zwar, möchte ich jedoch möglichst nicht verwenden müssen. (Mein Codegenerator müsste dann zusätzlich zu dem <element> noch einen weiteren <script>-Bereich hinzufügen.)

Schreibt man
  <element onevent="eventhandler()" />
wird ja eine anonyme Funktion erstellt, mit dem Attributinhalt als Funktionsbody an element.onclick zugewiesen. Das Event-Objekt bekommt die anonyme Funktion als Argument übergeben, mein eventhandler() jedoch nicht. Besteht alternativ die Chance an die Argumente der anonymen Funktion zu kommen?

Besten Dank, dedlfix

P.S. Die Archivsuche habe ich aufgegeben. Es gibt viele Einträge zu den Stichwörtern Event und Eventhandler in der Kategorie Javascript, nur keinen passenden.

  1. Hallo,

    <element id="idElement" onevent=" ? " />

    function eventhandler(ev) {

    if (!ev) // IE-Workaround
        ev = window.event
      alert(ev.keyCode)
    }

      
      ich kann dir ordentliches Halbwissen vermitteln (ich hab keine Ahnung wo es herkommt, ich hab keine Quellen, es scheint zu funktionieren):  
      
    ~~~html
      
    <element onevent="function(event);" />  
    
    

    gruss

    --
    Swiss Army Chainsaw
    Terrorific!
    Given a cow full of milk, should the milk un-cow itself, or should the cow milk itself?
    1. Oh,

      ich meine wirklich das wörtchen event (das war nämlich vorher eindeutig zweideutig):

      <a onclick="doThis(event);" />

        
      gruss
      
      -- 
      Swiss Army Chainsaw  
        
      Terrorific!  
      Given a cow full of milk, should the milk un-cow itself, or should the cow milk itself?
      
      1. Hallo nochmal!

        ich meine wirklich das wörtchen event (das war nämlich vorher eindeutig zweideutig):

        Ja, dass das "event" wörtlich zu nehmen ist, bezweifelte ich nicht. Und wenn du das so vorschlägst, vermute ich mal, dass es sich dabei um window.event handelt, was übergeben wird.
        Ich nahm an, dass das eine IE-Eigenheit sei, weil in den Beispielen zu window.event immer so ein IE-Workaround angegeben ist:

        function Tastendruck (Ereignis) {  
          if (!Ereignis)  
            Ereignis = window.event;  
          // ...  
        }  
        document.onkeypress = Tastendruck;
        

        Hier könnte man doch gleich immer auf window.event zugreifen und fertig ist die Laube, oder nicht?
        Nächstes Mal schaue ich mir die Browser-Symbole in der Einleitung genauer an ...

        Ich denke, ich werde das so nehmen, oder sprechen irgendwelche Browser-Krankheiten gegen diese Methode?

        Ansonsten bedankt sich
        dedlfix

        1. ich meine wirklich das wörtchen event (das war nämlich vorher eindeutig zweideutig):

          Ja, dass das "event" wörtlich zu nehmen ist, bezweifelte ich nicht. Und wenn du das so vorschlägst, vermute ich mal, dass es sich dabei um window.event handelt, was übergeben wird.

          Nein, ist es nicht:

          onclick="alert(window.event);">

          Allerdings ist es auch nicht, wie ich zuerst dachte, this.event, keine Ahnung woher das kommt.

          Struppi.