peterS.: createAttribute(JavaScript)

Beitrag lesen

<!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:)