<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>eventListenerDemo.html</title>
<meta http-equiv="content-style-type" content="text/css" />
<meta http-equiv="content-script-type" content="text/javascript" />
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<style type="text/css">
/*
*/
</style>
<script type="text/javascript">
/*
gruss michael,
statt:
TD2Field = document.createElement("INPUT");
...
...
TD2A = document.createAttribute("onBlur")
TD2A.nodeValue = "checkyear()";
TD2Field.setAttributeNode(TD2A);
var TD2Field = document.createElement("INPUT");
if (window.event) {
TD2Field.attachEvent("onblur",checkyear);
} else {
TD2Field.addEventListener("blur",checkyear,true); // probieren, ob "onblur" oder "blur"
}
generell wuerde ich attribut-knoten nicht mit "document.createAttribute"
erzeugen, da im msie diese methode nicht implementiert ist;
benutze statt dessen die "node"-methode "setAttribute('name','value')
oder setze die attribut-eigenschaften eines knotens direkt - z.b.:
*/
function initDemo() {
var htmlBodyElement = ((document.all && !window.opera) ? (document.all.tags("body")[0]) : ((document.getElementsByTagName) ? (document.getElementsByTagName("body")[0]) : (null)));
if (htmlBodyElement) {
var divNode = document.createElement("div");
divNode.setAttribute("id","blubb");
divNode.setAttribute("style","position:absolute;left:50px;top:50px;width:150px;height:80px;z-index:auto;background-color:#000000");
htmlBodyElement.appendChild(divNode);
if (document.all && !window.opera) {
divNode = document.all.tags("div")["blubb"];
divNode.style.cssText = "position:absolute;left:50px;top:50px;width:150px;height:80px;z-index:auto;background-color:#000000";
} else {
divNode = document.getElementsByTagName("div")["blubb"];
}
if (window.event) {
divNode.attachEvent("onmousedown",showEventData);
} else {
divNode.addEventListener("mousedown",showEventData,true);
}
}
}
function showEventData(evt) {
evt = ((window.event) ? (window.event) : (evt));
var mouseX = ((evt.clientX) ? (evt.clientX) : (evt.pageX));
var mouseY = ((evt.clientY) ? (evt.clientY) : (evt.pageY));
elementNode = ((evt.target) ? (evt.target) : (evt.srcElement));
alert("mousedown -> " + elementNode.id + "\nmouseX[" + mouseX + "]\nmouseY[" + mouseY + "]");
}
/*
ich moechte mich soweit aus dem fenster lehnen und Dir fast raten:
"[node].innerHTML" ist nicht so "boese", als das es nicht eine
ueberlegung wert waere, diese abkuerzung beim dynamischen erzeugen
von umfangreichen und komplexen _html_js_event_konstrukten_ zu nehmen;
immerhin unterstuetzen mozilla und opera dieses nicht w3c-dom-konforme msie-feature;
*/
</script>
</head>
<body onload="initDemo()">
<p>
</p>
</body>
</html>
viel erfolg und by(t)e by(t)e - peterS. - pseliger@gmx.net
sh:| fo:) ch:? rl:| br:& n3:} n4:# ie:| mo:{ va:| de:[ zu:] fl:) ss:) ls:& js:)