{"id":134,"date":"2007-10-09T18:12:18","date_gmt":"2007-10-09T17:12:18","guid":{"rendered":"http:\/\/blog.sahits.ch\/?p=134"},"modified":"2008-12-17T16:49:39","modified_gmt":"2008-12-17T15:49:39","slug":"eigene-objekte-in-javascript","status":"publish","type":"post","link":"http:\/\/sahits.ch\/blog\/blog\/2007\/10\/09\/eigene-objekte-in-javascript\/","title":{"rendered":"Eigene Objekte in Javascript"},"content":{"rendered":"<p>Die Definietion von eigenen Objekten in JavaScript alla<\/p>\n<pre>\r\nvar myObject = {\r\n  eigenschaft:\"\",\r\n  methode: function(){\r\n    ...\r\n  }\r\n}\r\n<\/pre>\n<p>ist eine tolle Sache. Insbesondere wenn aber die Objekte gr\u00f6sser und komplexer als obiges werden kann dies zu Problemen f\u00fchren, f\u00fcr die der Internet Explorer besonders anf\u00e4llig ist. So sagt er zum Beispiel das Object ist undefined. Eine m\u00f6gliche Ursache kann ein &#8218;,&#8216; zu viel sein. Zwischen den \u00e4ussersten geschweiften Klammern werden variablen und Funktionen aufgelistet. Nach dem letzten &#8222;Listeneintrag&#8220; darf kein &#8218;,&#8216; folgen. Weiters zeigt sich, dass der IE bei gr\u00f6sseren Objekten in oben beschriebener schreibweise das Objekt ebenfalls nicht kennt. Hier hilft es, das Objekt etwas anders zu definieren:<\/p>\n<pre>\r\nvar myObject = {\r\n  eigenschaft:\"\",\r\n  methode: function(){\r\n    ...\r\n  }\r\n}\r\nmyObject.methode2 = function(){\r\n...\r\n}\r\nmyObject.methode3 = function(){\r\n...\r\n}\r\n<\/pre>\n<p>Beim dynamischen Erstellen von Knoten habe ich zudem festgestellt, dass der IE gewisse Zeichenfolgen als gesch\u00fctzte Zeichenketten behandelt:<\/p>\n<pre>\r\nclass = document.createAttribute('class');\r\n<\/pre>\n<p>ist zwar zul\u00e4ssig, f\u00fchrt jedoch im IE zu einem Abbruch; f\u00fcr add trift selbiges zu. Es kann auch vorkommen, dass der IE ein Attribut Knoten einem Knoten nicht zuf\u00fcgen will. Dies l\u00e4sst sich umgehen indem man statt:<\/p>\n<pre>\r\nsize = document.createAttribute('size');\r\nsize.nodeValue='100';\r\ninput.setAttributeNode(size);\r\n<\/pre>\n<pre>\r\nname = document.createAttribute(document.createAttribute('size'));\r\nname.setAttribute('size','100');\r\n<\/pre>\n<p>verwendet.<br \/>\nVersucht man einen Knoten mit einem Event-Listener dynamisch zu generieren,<\/p>\n<pre>\r\n&lt;input id=\"esrscan\" class=\"xg\" onkeydown=\"listenEnter(event);\" name=\"ESRSCAN\" size=\"100\" type=\"text\"\/&gt;\r\n<\/pre>\n<p>Wird die Methode im IE nicht ausgef\u00fchrt. Hier hilft nur, den Code-Block bereits im HTML-Code zu halten und das Element mittels<\/p>\n<pre>document.forms[0].elements[\"ESRSCAN\"].display=\"none\";<\/pre>\n<p>verstecken. Anstelle des generieren kann das Element dann eingeblendet werden ( Setzte das display attribute auch &#8218;block&#8216;).<br \/>\nEine Ausf\u00fchrliche Anleitung zum erstellen von eigenen Objekten in JavaScript ist bei <a href=\"http:\/\/aktuell.de.selfhtml.org\/artikel\/javascript\/organisation\/\">SelfHTML<\/a> zu finden.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Definietion von eigenen Objekten in JavaScript alla var myObject = { eigenschaft:&#8220;&#8220;, methode: function(){ &#8230; } } ist eine tolle Sache. Insbesondere wenn aber die Objekte gr\u00f6sser und komplexer als obiges werden kann dies zu Problemen f\u00fchren, f\u00fcr die der Internet Explorer besonders anf\u00e4llig ist. So sagt er zum Beispiel das Object ist undefined. &hellip; <a href=\"http:\/\/sahits.ch\/blog\/blog\/2007\/10\/09\/eigene-objekte-in-javascript\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eEigene Objekte in Javascript\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[99,58,59,57,60,61],"class_list":["post-134","post","type-post","status-publish","format-standard","hentry","category-programmieren","tag-de","tag-ie","tag-internetexplorer","tag-javascript","tag-syntax","tag-undefined"],"_links":{"self":[{"href":"http:\/\/sahits.ch\/blog\/wp-json\/wp\/v2\/posts\/134","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/sahits.ch\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/sahits.ch\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/sahits.ch\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/sahits.ch\/blog\/wp-json\/wp\/v2\/comments?post=134"}],"version-history":[{"count":2,"href":"http:\/\/sahits.ch\/blog\/wp-json\/wp\/v2\/posts\/134\/revisions"}],"predecessor-version":[{"id":310,"href":"http:\/\/sahits.ch\/blog\/wp-json\/wp\/v2\/posts\/134\/revisions\/310"}],"wp:attachment":[{"href":"http:\/\/sahits.ch\/blog\/wp-json\/wp\/v2\/media?parent=134"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/sahits.ch\/blog\/wp-json\/wp\/v2\/categories?post=134"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/sahits.ch\/blog\/wp-json\/wp\/v2\/tags?post=134"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}