<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Zapps Blog &#187; IE 6</title>
	<atom:link href="http://zappsblog.de/tag/ie-6/feed" rel="self" type="application/rss+xml" />
	<link>http://zappsblog.de</link>
	<description>Bloggen ohne Konzept</description>
	<lastBuildDate>Mon, 23 Mar 2009 16:51:06 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>setAttribute, onclick und ein alter Bekannter</title>
		<link>http://zappsblog.de/2008/09/10/setattribute-onclick-und-ein-alter-bekannter/%</link>
		<comments>http://zappsblog.de/2008/09/10/setattribute-onclick-und-ein-alter-bekannter/%#comments</comments>
		<pubDate>Wed, 10 Sep 2008 20:07:35 +0000</pubDate>
		<dc:creator>Zapp</dc:creator>
				<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[Browserbug]]></category>
		<category><![CDATA[IE 6]]></category>
		<category><![CDATA[IE 7]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://zappsblog.de/?p=285</guid>
		<description><![CDATA[<p> Einstieg in JavaScript und ein DÃ©jÃ -vu-Erlebnis. Und die Erkenntnis, dass sich der IE treu bleibt.</p>]]></description>
			<content:encoded><![CDATA[<p>Ich habe momentan ein leichtes DÃ©jÃ -vu-Erlebnis, das mich ein paar Jahre zurÃ¼ckwirft. </p>
<p>Als ich damals begann mich fÃ¼r HTML und CSS zu interessieren,  fand ich die MÃ¶glichkeiten beider Sprachen faszinierend und das Konzept der Trennung von Inhalt und Layout einleuchtend. Der erste Tatendrang wurde zeitweise nur durch eine Software aus dem fernen Redmond gebremst: den Internet Explorer.</p>

<img src="http://zappsblog.de/wordpress/wp-content/uploads/images/2008/krimskrams/ie.jpg" alt="" class="einzelbildlinks" width="100" height="100" />

<p>Version sechs verhielt sich oft anders, als man das angesichts des Codes erwarten sollte.  Schnell war klar, dass das nicht nur am anfÃ¤ngerhaften Code sondern auch und vor allem am veralteten Browser lag und mit der Zeit und einigen Internetrecherchen lernte ich manche Eigenheiten des IE  kennen. Begriffe wie <a href="http://www.bongard.net/blog/2007/05/14/css_stern-html-hack/" title="Bongard.net: Stern-HTML-Hack &#038; Stern-plus-HTML-Hack">â€žStar-HTML-Hackâ€œ</a> und <a href="http://onhavinglayout.fwpf-webdesign.de/" title="Ãœber hasLayout">â€žhasLayoutâ€œ</a> verloren ihre Schrecken und so wurden Layouts mÃ¶glich, die auch im im IE&nbsp;6 und seinem grossen Bruder IE&nbsp;7 akzeptabel aussehen.</p> 
<p>Nun stehe ich mit JavaScript wieder am Anfang einer neuen Websprache und was soll ich sagen: Die Probleme sind Ã¤hnlich. Es gibt recht klare und einleuchtende Konzepte, die in der Praxis am IE scheitern.</p>
<p>So gibt es etwa die <tt>setAttribute</tt>-Methode, die einem Knoten ein Attribut zuweisen kann. Einem Link kann beispielsweise mit <tt>linkknoten.setAttribute("class","externer");</tt> die Klasse â€žexternerâ€œ zugeteilt werden, die man mit der komplementÃ¤ren <tt>getAttribute</tt>-Methode auch wieder auslesen kann. Mit der gleichen Syntax kÃ¶nnte der Link auch noch <tt>href</tt>- und <tt>title</tt>-Attribute bekommen, bevor er schliesslich in den Dokumentenbaum eingehÃ¤ngt wird. <tt>setAttribute</tt> ist universell einsetzbar und hat eine leicht zu merkende Syntax, warum sollte man sich fÃ¼r das Setzen und Auslesen von Klassen noch mit dem Wissen um die vergleichsweise spezielle <tt>className</tt>-Eigenschaft eines Knotens belasten mÃ¼ssen?</p>

<p>Ganz einfach: Weil der Internet Explorer in seinen beiden am weitesten verbreiteten Inkarnationen nicht zuverlÃ¤ssig damit klar kommt.</p>
<img src="http://zappsblog.de/wordpress/wp-content/uploads/images/2008/krimskrams/ff.jpg" alt="" class="einzelbildlinks" width="103" height="100" />
<p>Durch <tt>setAttribute</tt> gesetzte Klassen, die der <a href="http://www.download.com/IE-DOM-Inspector/3000-2378_4-10366322.html?tag=lst-0-1" title="Cnet: IE DOM Inspector 1.0.4">IE-DOM-Inspektor</a>  auch sieht, werden dann auf einmal vom CSS nicht beachtet oder Klassennamen werden nicht korrekt ausgelesen, weshalb  das betreffende Script dann natÃ¼rlich nicht im IE funktioniert.</p>
<p>Genau das gleiche Problem existiert im IE bei der Behandlung des <tt>onclick</tt>-Attribut, auf das man verzichten und stattdessen <tt>knotenname.onclick = function(){};</tt> einsetzen sollte.</p>
<p>Dummerweise stand das nicht in meinem ansonsten wirklich genialen <a href="http://www.amazon.de/Dom-Scripting-Design-JavaScript-Document/dp/1590595335/" title="Jeremy Keith: &ldquo;Dom Scripting: Web Design with JavaScript and the Document Object Model&rdquo;">Lehrbuch</a>, was mir einige Stunden Gefluche mit meinem Lieblingsbrowser eingebracht hat. Bei einem so diffusen Problembild war meine Webrecherche erfolglos, und auf die Idee, bei SELFHTML ausgerechnet bei <tt>setAttribute</tt> nachzuschlagen um dort eine <a href="http://de.selfhtml.org/javascript/objekte/node.htm#set_attribute" title="SELFHTML: setAttribute">eindringliche Warnung</a> inklusive ErklÃ¤rung des PhÃ¤nomens zu finden, bin ich leider nicht gekommen.  So brachte erst ein beilÃ¤ufiger Hinweis in einem <a href="http://sixrevisions.com/resources/cheat_sheets_web_developer/" title="Six Revisions: Cheat Sheets for Front-end Web Developers">JavaScript-Cheatsheet</a> die Erleuchtung.</p>

<p>Und damit Google in Zukunft eine Stelle mehr im Web findet, die von AnfÃ¤ngerproblemen mit JavaScript, Klassen, Event-Handlern und dem Internet Explorer berichtet, habe ich diesen kleinen Beitrag verfasst.</p>]]></content:encoded>
			<wfw:commentRss>http://zappsblog.de/2008/09/10/setattribute-onclick-und-ein-alter-bekannter/%/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

