Problem mirt Ereignisen unter IE

Beruga

Mitglied
Hallo allerseits,

ich habe ein Problem mit JavaScript und IE, ein Beispiel dazu steht unten. Zum Problem, ich erstelle mit dem Code einen "span" welches auf das Ereignis "onmousedown" eine Methode einer Instanz aufrufen soll. Unter FireFox geht es wunderbar, nur nicht unter IE.
Es währe schön, wenn mir jemand weiterhelfen könnte und gegebenfalls die Ereignisbehandlung unter IE erklären könnte.

HTML:
<html>
<head>
<script>
<!--
var button;
function Button(caption) {
	this.caption = document.createTextNode(caption);
	this.span = document.createElement("span");
	this.span.appendChild(this.caption);
	this.span.setAttribute("onmousedown", "button.mouseDown()");
	document.body.appendChild(this.span);

	this.mouseDown = mouseDown;
	this.method = null;
	button = this;
}

function mouseDown() {
	if (button.method)
		button.method();
}

var b1;

function init() {
	function showMessage() {
		alert("Hallo Welt!");
	}

	b1 = new Button("button1");
	b1.method = showMessage;
}
//-->
</script>
</head>
<body onload="init()">
</body>
</html>
 
Hi,

der IE hat Probleme mit der setAttribute-Methode. Weise die Funktion stattdessen über
new Function an den Eventhandler zu.
Code:
function Button(caption) {
	this.caption = document.createTextNode(caption);
	this.span = document.createElement("span");
	this.span.appendChild(this.caption);
        this.span.onmousedown = new Function('F',"button.mouseDown()");
	document.body.appendChild(this.span);

	this.mouseDown = mouseDown;
	this.method = null;
	button = this;
}
Ciao
Quaese
 
Zurück