Hallo,
Ich habe damit noch nicht gearbeitet, aber sagen die Specs nicht aus, dass dispatchEvent ein Event-Objekt erwartet und keinen String?
Ja durchaus und ich handhabe das im genannten SVG-Beispiel formal auch so, wobei allerdings das click-MouseEvent an die Funktion uebergeben wird und nicht neu erzeugt wird.
Ich hätte es mit var evt = document.createEvent("MouseEvent");
evt.initMouseEvent("click", ...andere Eventeigenschaften...); var success = obj.dispatchEvent(evt); versucht (ungetestet - ich meine vom Prinzip her).
Ja, das passt schon besser.
Beim Testen mit Mozilla habe ich das Beispiel aus der Gecko DOM Reference probiert, was offenbar fehlerhaft ist.
Hier mal ein erfolgreicher Versuch mit Mozilla (getestet mit Firefox 1.0) mit Orientierung am DOM Level 2 Event Model:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Test by TM 01/05</title>
<script language="JavaScript" type="text/javascript">
<!--
function Init()
{
var obj=document.getElementById("test");
if(document.createEvent && obj.dispatchEvent)
{
var evt=document.createEvent("MouseEvents");
if(evt && evt.initMouseEvent)evt.initMouseEvent("click",true,true,document.defaultView,1,0,0,0,0,false,false,false,false,0,null);
obj.dispatchEvent(evt);
}
}
function Test()
{
alert("klappt");
}
//-->
</script>
</head>
<body onload="Init()">
<form action="">
<input id="test" type="button" value="Test" onclick="Test()">
</form>
</body>
</html>
MfG, Thomas