Harlequin: eventhandler via script auslösen

Beitrag lesen

Yerf!

gibt es eine Möglichkeit, eine via eventhandler angefügte Funktion im selben Kontext via Script auszuführen?

Das geht nicht. ein Inline Event wird im Kontext window ausgeführt, ein per JS zugefügter Event, im Kontext des Elementes.

Hm, das bringt mich gerade etwas zum nachdenken... (ich muss zugeben, dass ich JavaScript immer noch nicht voll im Griff hab)

Ich verwende bei einer Funktion folgenden Konstrukt:

  
function xyz()  
{  
  //[... viel Code]  
  var hori = document.createElement("tabel");  
  var verti = document.createElement("table");  
  var scrl = document.createElement("div");  
  //[... viel Code]  
  
  scrl.onscroll = function(){  
    hori.style.left = (-this.scrollLeft) + "px";  
    verti.style.top = (-this.scrollTop) + "px";  
    };  
  scrl.onscroll();  
}  

Ist hier scrl.onscroll(); kein Inline-Event-Aufruf, oder wieso bekomme ich innerhalb dieser Funktion mitels this das richtige Objekt (also scrl)?

Oder erzeuge ich hier ein Sonderverhalten durch den Closure?

Interessant ist auch, dass ein

  
(scrl.onscroll = function(){  
  hori.style.left = (-this.scrollLeft) + "px";  
  verti.style.top = (-this.scrollTop) + "px";  
  })();  

im FF ebenfalls funktioniert, aber im IE zum Fehler führt (this.scrollLeft existiert ist undefined).

Gruß,

Harlequin

--
<!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->