Eventhandler zu dynamisch angelegte Buttons bei MSIE
Johann Flori-Himpel
- javascript
Hallo Gemeinde,
Das folgende Script funktioniert tadellos unter Netscape 6.
Es legt dynamisch Buttons an und weist dynamisch eine Funktion zu,
die beim Maus-Click tatsächlich ausgeführt wird.
Im MSIE werden zwar die Buttons angelegt (ohne Fehler-Meldung);
aber die Reaktion auf den Maus-Click erfolgt nicht.
Gibt es da ein grundsätzliches Problem oder kann mir jemand sagen,
wie ich es unter dem MSIE trotzdem hin kriege?
vielen Dank für alle Bemühungen
flo
<html>
<head>
<title>Dynamische Buttons</title>
<meta name="author" content="flo">
<meta name="generator" content="Ulli Meybohms HTML EDITOR">
<script language="JavaScript">
<!--
function SETATB(OB, ATB, VAL)
{ var NewATB = document.createAttribute(ATB) ;
NewATB.nodeValue = VAL;
OB.setAttributeNode(NewATB);};
function init()
{
var Par = document.getElementById("btnpar")
var BTN = document.createElement("button");
var TXTBTN = document.createTextNode("Button-Button");
SETATB(BTN, "onClick", 'sayHello("Button")');
BTN.appendChild(TXTBTN);
Par.appendChild(BTN);
var INP = document.createElement("input");
SETATB(INP, "type", "button");
SETATB(INP, "onClick", 'sayHello("Input")');
INP.value = "Input-Button";
Par.appendChild(INP);
};
function sayHello(who)
{alert("Hello from " + who);};
-->
</script> </head>
<body onload="init()">
<p id="btnpar"></p>
</body></html>
Hallo,
Gibt es da ein grundsätzliches Problem oder kann mir jemand sagen,
wie ich es unter dem MSIE trotzdem hin kriege?
Ja, man muss das Gedaechtnis des IE etwas auffrischen:
...
Par.appendChild(INP);
Hier diese Zeile anfuegen:
Par.outerHTML=Par.outerHTML;
MfG, Thomas
[Nachtrag:]
Par.outerHTML=Par.outerHTML;
Um Fehler bei anderen Browsern zu vermeiden, besser so:
if(Par.outerHTML)Par.outerHTML=Par.outerHTML;
MfG, Thomas
Hallo, Thomas
Ich bin begeistert!
Vielen Dank für die Lösung.
MfG, flo