Kornblume mit Hummel

Javascript Fehler: This command is not supported

Folgender Codeschnipsel läuft einwandfrei in gängigen Browsern:

<html>
 <head>
  <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/prototype/1.7.2.0/prototype.js"></script>
 </head>
 <body>
  <div id="mammal"></div>
  <script type="text/javascript">
   var input = $('mammal').appendChild(document.createElement("input"));
   input.setAttribute("name", "user_id");
   input.setAttribute("type", "hidden");
   input.setAttribute("value", 4711);
  </script>
 </body>
</html>

Nur der Internet Explorer quittiert seinen Dienst mit folgenden Fehler:

Message: This command is not supported.
 Line: 10
 Char: 4
 Code: 0
 URI: https://localhost/test.html

Was also ist los damit das Attribute “type” einfach neu zu setzen?

Ändere ich den Code wie folgt indem das input-Element erst nach der vollständigen Erzeugung an das DIV angehangen wird läuft es auch im IE:

<html>
 <head>
  <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/prototype/1.7.2.0/prototype.js"></script>
 </head>
 <body>
  <div id="mammal"></div>
  <script type="text/javascript">
   var input = document.createElement("input");
   input.setAttribute("name", "user_id");
   input.setAttribute("type", "hidden");
   input.setAttribute("value", 4711);
   $('mammal').appendChild(input);
  </script>
 </body>
</html>

Was also ist los hier?

Im IE ist das INPUT-Element bereits im Dokument verankert und vom Typ “text” definiert und durch anhängen zu Beginn des Codes bereits im Dokument verankert. Eine Änderung des Typs ist somit ab diesem Zeitpunkt nicht mehr möglich.

Veröffentlicht von

Sebastian

Als erfahrener Softwarentwickler entwickelt Sebastian in einer Softwareschmiede in Bonn Individualsoftware mit den Schwerpunkten in PHP und MySQL. Er hat eine pfiffige Frau sowie drei quirlige Söhne, fährt gerne Auto und liebt handwerkliche Arbeiten die im häuslichen Umfeld so anfallen.