<?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>trafex &#187; JavaScript</title>
	<atom:link href="http://trafex.de/blog/category/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://trafex.de</link>
	<description>webdev blog</description>
	<lastBuildDate>Sun, 22 Nov 2009 19:55:34 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>MooTools 1.2 erschienen</title>
		<link>http://trafex.de/blog/27/mootools-12-erschienen/</link>
		<comments>http://trafex.de/blog/27/mootools-12-erschienen/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 11:31:35 +0000</pubDate>
		<dc:creator>StefanB</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[JavaScript-Framework]]></category>
		<category><![CDATA[Mootools]]></category>
		<category><![CDATA[Release]]></category>

		<guid isPermaLink="false">http://trafex.de/?p=27</guid>
		<description><![CDATA[Nach einiger Zeit ist endlich MooTools 1.2 erschienen. Das JavaScript-Framework wurde fast ein Jahr nach dem letzten 1.11er Release veröffentlicht.
Einige der neuen Features der 1.2er Version:

bessere Domunentation
verbesserte Effekte
&#8216;richtige&#8217; Hash-Objekte
Swiff Objekt zur Interaktion mit Flash
die Möglichkeit zu jedem Element Metadaten zu speichern

Bei der Umstellung ist zu beachten, das sich an der API einiges getan hat und [...]]]></description>
			<content:encoded><![CDATA[<p>Nach einiger Zeit ist endlich <a href="http://www.mootools.net">MooTools</a> 1.2 erschienen. Das JavaScript-Framework wurde fast ein Jahr nach dem letzten 1.11er Release veröffentlicht.</p>
<p>Einige der neuen Features der 1.2er Version:</p>
<ul>
<li>bessere Domunentation</li>
<li>verbesserte Effekte</li>
<li>&#8216;richtige&#8217; Hash-Objekte</li>
<li>Swiff Objekt zur Interaktion mit Flash</li>
<li>die Möglichkeit zu jedem Element Metadaten zu speichern</li>
</ul>
<p>Bei der Umstellung ist zu beachten, das sich an der API einiges getan hat und man somit evtl. etwas Arbeit in die Umstellung stecken muss &#8211; was sich aber meiner Meinung nach mehr als Lohnt.</p>
]]></content:encoded>
			<wfw:commentRss>http://trafex.de/blog/27/mootools-12-erschienen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Super Mario in 14kb Javascript</title>
		<link>http://trafex.de/blog/22/super-mario-in-14kb-javascript/</link>
		<comments>http://trafex.de/blog/22/super-mario-in-14kb-javascript/#comments</comments>
		<pubDate>Wed, 09 Apr 2008 10:00:56 +0000</pubDate>
		<dc:creator>StefanB</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Spiel]]></category>
		<category><![CDATA[Super Mario]]></category>

		<guid isPermaLink="false">http://trafex.de/?p=22</guid>
		<description><![CDATA[Spiele in Javascript gibt es schon einige. Ein Klassiker ist z.B. Tetris als Javascript und Lemmings wurde auch schon in Javascript umgesetzt.
Als neuesten Spross der Javascript-Spieleumsetzungen hat Jacob Seidelin Super Mario in Javascript umgesetzt. Das besondere hieran ist, dass das komplette Script ohne externe Grafiken auskommt und trotzdem nur 14kb Platz (komprimiert) belegt. Ein paar Schönheitsfehlerchen hat das ganze noch, so gibt es anscheinend keine Pilze und nur ein Level - Cool ist es trotzdem!
Demo: ohne Musik oder mit Musik
]]></description>
			<content:encoded><![CDATA[<p>Spiele in Javascript gibt es schon einige. Ein Klassiker ist z.B. <a href="http://www.google.de/search?q=javascript+tetris" target="_blank">Tetris als Javascript</a> und <a href="http://www.elizium.nu/scripts/lemmings/" target="_blank">Lemmings</a> wurde auch schon in Javascript umgesetzt.<br />
Als neuesten Spross der Javascript-Spieleumsetzungen hat Jacob Seidelin Super Mario in Javascript <a href="http://blog.nihilogic.dk/2008/04/super-mario-in-14kb-javascript.html" target="_blank">umgesetzt</a>. Das besondere hieran ist, dass das komplette Script ohne externe Grafiken auskommt und trotzdem nur 14kb Platz (komprimiert) belegt. Ein paar Schönheitsfehlerchen hat das ganze noch, so gibt es anscheinend keine Pilze und nur ein Level - Cool ist es trotzdem!</p>
<p>Demo: <a href="http://www.nihilogic.dk/labs/mario/mario_small_nomusic.htm" target="_blank">ohne Musik</a> oder <a href="http://www.nihilogic.dk/labs/mario/mario_small_music.htm" target="_blank">mit Musik</a></p>
]]></content:encoded>
			<wfw:commentRss>http://trafex.de/blog/22/super-mario-in-14kb-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Offtopic: Javascript &#8211; DIE Sprache der Zukunft?</title>
		<link>http://trafex.de/blog/20/offtopic-javascript-die-sprache-der-zukunft/</link>
		<comments>http://trafex.de/blog/20/offtopic-javascript-die-sprache-der-zukunft/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 07:27:39 +0000</pubDate>
		<dc:creator>StefanB</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Offtopic]]></category>
		<category><![CDATA[Stargate]]></category>
		<category><![CDATA[Zukunft]]></category>

		<guid isPermaLink="false">http://trafex.de/?p=20</guid>
		<description><![CDATA[
Da hat jemand im Stargate-Film &#8220;Stargate: The Ark of Truth&#8221; (Im Deutschen &#8220;Die Quelle der Wahrheit&#8221;) genau hingeschaut und entdeckt, das in der Zukunft wohl Javascript zum Programmieren verwendet wird. Den passenden Filmausschnitt gibt&#8217;s bei youtube.
Via Ajaxian
]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" src="http://img.thedailywtf.com/images/200803/Screenshot1.jpg" alt="Stargate Javascript Screenshot" width="634" height="356" /></p>
<p>Da hat jemand im Stargate-Film &#8220;<a href="http://www.imdb.com/title/tt0942903/" target="_blank">Stargate: The Ark of Truth</a>&#8221; (Im Deutschen &#8220;Die Quelle der Wahrheit&#8221;) genau hingeschaut und entdeckt, das in der Zukunft wohl Javascript zum Programmieren verwendet wird. Den passenden Filmausschnitt gibt&#8217;s bei <a href="http://www.youtube.com/watch?v=7itieZG3hdw" target="_blank">youtube</a>.<br />
Via <a href="http://ajaxian.com/archives/javascript-has-staying-power-used-in-stargate" target="_blank">Ajaxian</a></p>
]]></content:encoded>
			<wfw:commentRss>http://trafex.de/blog/20/offtopic-javascript-die-sprache-der-zukunft/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bestimmte Links automatisch in einem neuen Fenster öffnen</title>
		<link>http://trafex.de/blog/19/bestimmte-links-automatisch-in-einem-neuen-fenster-offnen/</link>
		<comments>http://trafex.de/blog/19/bestimmte-links-automatisch-in-einem-neuen-fenster-offnen/#comments</comments>
		<pubDate>Mon, 07 Apr 2008 15:12:14 +0000</pubDate>
		<dc:creator>StefanB</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[Mootools]]></category>

		<guid isPermaLink="false">http://trafex.de/blog/19/bestimmte-links-automatisch-in-einem-neuen-fenster-offnen/</guid>
		<description><![CDATA[Wer kennt das Problem nicht: man verlinkt Dateien, z.B. in einer Galerie Links auf die große Ansicht der Bilder oder möchte das sich PDF&#8217;s nicht im aktuellen Browserfenster öffnen, sondern in einem neuen.
Wenn man dies manuell lösen möchte muss man nun bei jedem Link umständlich target=&#8221;_blank&#8221; anfügen.
David Walsh hat dafür eine eine Javascript-Lösung entwickelt, welche [...]]]></description>
			<content:encoded><![CDATA[<p>Wer kennt das Problem nicht: man verlinkt Dateien, z.B. in einer Galerie Links auf die große Ansicht der Bilder oder möchte das sich PDF&#8217;s nicht im aktuellen Browserfenster öffnen, sondern in einem neuen.<br />
Wenn man dies manuell lösen möchte muss man nun bei jedem Link umständlich target=&#8221;_blank&#8221; anfügen.</p>
<p><a href="http://davidwalsh.name/mootools-open-links-class">David Walsh</a> hat dafür eine eine Javascript-Lösung entwickelt, welche auf Mootools basiert und Links auf einer Seite analysiert und &#8211; je nach Dateiendung des Links &#8211; das target=&#8221;_blank&#8221; automatisch anhängt. Das Script lässt sich meiner Meinung nach auch sehr einfach an andere Javascript-Frameworks anpassen und ist ein interessanter Ansatz dieses Problem zu lösen und die Seite auch benutzbar zu lassen wenn der Betrachter Javascript abgeschaltet hat oder kein Javascript versteht.</p>
]]></content:encoded>
			<wfw:commentRss>http://trafex.de/blog/19/bestimmte-links-automatisch-in-einem-neuen-fenster-offnen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Opera und WebKit bestehen Acid3 Test</title>
		<link>http://trafex.de/blog/18/opera-und-webkit-bestehen-acid3-test/</link>
		<comments>http://trafex.de/blog/18/opera-und-webkit-bestehen-acid3-test/#comments</comments>
		<pubDate>Thu, 27 Mar 2008 08:28:09 +0000</pubDate>
		<dc:creator>StefanB</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Kompatibilität]]></category>
		<category><![CDATA[Acid]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[WebKit]]></category>

		<guid isPermaLink="false">http://trafex.de/blog/18/opera-und-webkit-bestehen-acid3-test/</guid>
		<description><![CDATA[Wie ich gerade bei Ajaxian gelesen habe bestehen Opera und WebKit (Safari) den Acid3 Test. Beide Browser erreichten in aktuellen Beta-Versionen 100/100 Punkte. Dabei war das Team von Opera etwas schneller und schaffte das Ergebnis ein paar Tage vor dem WebKit-Team.
Eine Übersicht, welche Browser den Test mit wie vielen Punkten besteht, gibt es bei Anomalous [...]]]></description>
			<content:encoded><![CDATA[<p>Wie ich gerade bei <a href="http://ajaxian.com/">Ajaxian</a> gelesen habe bestehen <a href="http://my.opera.com/desktopteam/blog/2008/03/26/opera-and-the-acid3-test">Opera</a> und <a href="http://webkit.org/blog/173/webkit-achieves-acid3-100100-in-public-build/">WebKit</a> (Safari) den <a href="http://www.webstandards.org/action/acid3/">Acid3 Test</a>. Beide Browser erreichten in aktuellen Beta-Versionen 100/100 Punkte. Dabei war das Team von Opera etwas schneller und schaffte das Ergebnis ein paar Tage vor dem WebKit-Team.</p>
<p>Eine Übersicht, welche Browser den Test mit wie vielen Punkten besteht, gibt es bei <a href="http://www.anomalousanomaly.com/2008/03/06/acid-3/">Anomalous Anomaly</a>. Allerdings ist dort Opera noch nicht mit 100% gelistet, da die Version, welche den Test bestanden hat, noch nicht öffentlich verfügbar ist.</p>
]]></content:encoded>
			<wfw:commentRss>http://trafex.de/blog/18/opera-und-webkit-bestehen-acid3-test/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wenn innerHTML nicht schnell genug ist</title>
		<link>http://trafex.de/blog/13/wenn-innerhtml-nicht-schnell-genug-ist/</link>
		<comments>http://trafex.de/blog/13/wenn-innerhtml-nicht-schnell-genug-ist/#comments</comments>
		<pubDate>Thu, 10 Jan 2008 18:24:16 +0000</pubDate>
		<dc:creator>StefanB</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[innerHTML]]></category>
		<category><![CDATA[Optimierung]]></category>
		<category><![CDATA[replaceHTML]]></category>
		<category><![CDATA[WebDev]]></category>

		<guid isPermaLink="false">http://trafex.de/blog/13/wenn-innerhtml-nicht-schnell-genug-ist/</guid>
		<description><![CDATA[Es gibt mehrere Wege Inhalt auf einer Seite auszutauschen. Man kann das DOM Modell verwenden, welches von W3 Konsortium standardisiert worden ist. Die gebräuchlichere Variante ist jedoch in den meisten Fällen innerHTML zu benutzen. Auch ist die Verwendung von innerHTML mit den meisten Browsern schneller als die Verwendung der DOM Methoden.
Beispiel:

&#60;p id=&#34;inhalt&#34;&#62;Hier kommt beliebiger Inhalt
&#60;a [...]]]></description>
			<content:encoded><![CDATA[<p>Es gibt mehrere Wege Inhalt auf einer Seite auszutauschen. Man kann das DOM Modell verwenden, welches von W3 Konsortium standardisiert worden ist. Die gebräuchlichere Variante ist jedoch in den meisten Fällen innerHTML zu benutzen. Auch ist die Verwendung von innerHTML mit den meisten Browsern schneller als die Verwendung der DOM Methoden.</p>
<p>Beispiel:</p>

<div class="wp_syntax"><div class="code"><pre class="html html" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;inhalt&quot;</span>&gt;</span>Hier kommt beliebiger Inhalt
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span> <span style="color: #000066;">onclick</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;document.getElementById('inhalt').innerHTML='Und jetzt der neue Text';&quot;</span>&gt;</span>Inhalt tauschen<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span></pre></div></div>

<p>Wenn jedoch viele HTML-Elemente in dem zu tauschendem Inhalt sind, kann das Austauschen durchaus etwas Zeit in Anspruch nehmen.</p>
<p>Steven Levithan stellt in seinem <a href="http://blog.stevenlevithan.com/archives/faster-than-innerhtml" target="_blank">Blog</a> mit replaceHTML eine JavaScript-Funktion vor, welche diese Aufgabe schneller erledigen kann.<span id="more-13"></span></p>
<p>Code:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> replaceHtml<span style="color: #009900;">&#40;</span>el<span style="color: #339933;">,</span> html<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> oldEl <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">typeof</span> el <span style="color: #339933;">===</span> <span style="color: #3366CC;">&quot;string&quot;</span> <span style="color: #339933;">?</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span>el<span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> el;
    <span style="color: #006600; font-style: italic;">/*@cc_on // Pure innerHTML is slightly faster in IE
    oldEl.innerHTML = html;
    return oldEl;
    @*/</span>
    <span style="color: #003366; font-weight: bold;">var</span> newEl <span style="color: #339933;">=</span> oldEl.<span style="color: #660066;">cloneNode</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span>;
    newEl.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> html;
    oldEl.<span style="color: #660066;">parentNode</span>.<span style="color: #660066;">replaceChild</span><span style="color: #009900;">&#40;</span>newEl<span style="color: #339933;">,</span> oldEl<span style="color: #009900;">&#41;</span>;
    <span style="color: #006600; font-style: italic;">/* Since we just removed the old element from the DOM, return a reference
    to the new element, which can be used to restore variable references. */</span>
    <span style="color: #000066; font-weight: bold;">return</span> newEl;
<span style="color: #009900;">&#125;</span>;</pre></div></div>

<p>Beispiel für die Benutzung:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">// innerHTML</span>
el.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> newHtml
&nbsp;
<span style="color: #006600; font-style: italic;">// replaceHTML</span>
el <span style="color: #339933;">=</span> replaceHtml<span style="color: #009900;">&#40;</span>el<span style="color: #339933;">,</span> newHtml<span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>Wenn man nur wenige Elemente überschreibt macht die Benutzung von replaceHTML allerdings wenig Sinn. Seine Stärken kann die Funktion nur ausspielen wenn man wirklich viele Elemente austauscht. Und da vor allem beim Verwerfen von vorhandenen Elementen.<br />
Einen kleinen Benchmark, der im Browser läuft, stellt er auch gleich zur Verfügung: <a href="http://stevenlevithan.com/demo/replaceHtml.html" target="_blank">Link</a></p>
]]></content:encoded>
			<wfw:commentRss>http://trafex.de/blog/13/wenn-innerhtml-nicht-schnell-genug-ist/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Überprüfen ob GoogleAds geladen wurden</title>
		<link>http://trafex.de/blog/11/uberprufen-ob-googleads-geladen-wurden/</link>
		<comments>http://trafex.de/blog/11/uberprufen-ob-googleads-geladen-wurden/#comments</comments>
		<pubDate>Tue, 13 Mar 2007 15:20:31 +0000</pubDate>
		<dc:creator>StefanB</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Adsense]]></category>
		<category><![CDATA[überprüfen]]></category>
		<category><![CDATA[GoogleAds]]></category>
		<category><![CDATA[laden]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[WebDev]]></category>

		<guid isPermaLink="false">http://trafex.de/blog/11/uberprufen-ob-googleads-geladen-wurden/</guid>
		<description><![CDATA[GoogleAds stellen eine einfach zu implementierende und gute Einnahmequelle für Webseiten dar. Zudem nerven Sie eigentlich nie durch wildes geblinke bzw. können eingestellt werden, dass nur Text-Anzeigen dargestellt werden.
Dies war der Grund warum ich mich bei meinem Projekt against-silence.com für diese Werbeform entschieden habe. Die Werbung wird derzeit nur im Forum unter dem jew. 1. [...]]]></description>
			<content:encoded><![CDATA[<p>GoogleAds stellen eine einfach zu implementierende und gute Einnahmequelle für Webseiten dar. Zudem nerven Sie eigentlich nie durch wildes geblinke bzw. können eingestellt werden, dass nur Text-Anzeigen dargestellt werden.</p>
<p>Dies war der Grund warum ich mich bei meinem Projekt <a href="http://www.against-silence.com/">against-silence.com</a> für diese Werbeform entschieden habe. Die Werbung wird derzeit nur im Forum unter dem jew. 1. Post einer Seite dargestellt. Doch durch die zunehmende Anzahl eingesetzter Werbefilter sind die Klick-Zahlen  drastisch gesunken. Um die Besucher auf dieses Problem aufmerksam zu machen dachte ich über eine Lösung nach &#8230;<span id="more-11"></span></p>
<p>Zu allererst nahm ich mir die JavaScript-Datei von Google vor, die beim Aufrufen der Werbung included wird. Idealer weise wäre hier eine Variable enthalten, die man nach der Ausführung des Scriptes einfach überprüfen könnte.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;!--</span>
<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> google_ads_loaded <span style="color: #339933;">!=</span> <span style="color: #CC0000;">1</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #006600; font-style: italic;">// Code wenn Werbung nicht geladen wurde</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">--&gt;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></div></div>

<p>Leider ist dem nicht so. In dieser ist nur eine Funktion enthalten, welche die weiteren Schritte aufruft. Da hier nicht zugegriffen werden kann musste eine andere Lösung her.</p>
<p>Der Lösungsweg ist allerdings nicht viel komplizierter ausgefallen. GoogleAds erzeugt nach meinen Beobachtungen in jedem Fall ein iframe mit dem Namen &#8220;google_ads_frame&#8221;. Dieses Überprüfe ich nun einfach auf Existenz und wenn es nicht vorhanden ist, führe ich Code aus.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
<span style="color: #003366; font-weight: bold;">function</span> checkgooglead<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> gaf <span style="color: #339933;">=</span> window.<span style="color: #660066;">google_ads_frame</span>;
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span>gaf <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;addiv&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;
&lt;h2&gt;Diese Seite finanziert sich durch freiwillige Spenden und durch Werbung.Bitte schalte deinen Werbeblocker ab!&lt;/h2&gt;
&quot;</span>;
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></div></div>

<p>Das Element mit der ID &#8220;addiv&#8221; ist in diesem Fall ein Div, welches nur den Code für die GoogleAds enthält. Wenn nun also das Fenster(=Frame) mit diesem Namen nicht existiert, wird der Inhalt des Div&#8217;s durch einen freundlicher Spruch ersetz.<br />
Ohne Javascript hat das natürlich keinen Effekt, aber dann würden auch keine GoogleAds geladen werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://trafex.de/blog/11/uberprufen-ob-googleads-geladen-wurden/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mehrere nacheinander folgende Style-Veränderungen mit mootools</title>
		<link>http://trafex.de/blog/7/mehrere-nacheinander-folgende-style-veranderungen-mit-mootools/</link>
		<comments>http://trafex.de/blog/7/mehrere-nacheinander-folgende-style-veranderungen-mit-mootools/#comments</comments>
		<pubDate>Mon, 19 Feb 2007 14:52:17 +0000</pubDate>
		<dc:creator>StefanB</dc:creator>
				<category><![CDATA[Demos]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://trafex.de/blog/7/mehrere-nacheinander-folgende-style-veranderungen-mit-mootools/</guid>
		<description><![CDATA[Ich beschäftige mich derzeit sehr viel mit AJAX. Dazu verwende ich zur Vereinfachung der Programmierung die von den mootools gelieferte AJAX-Bibliothek, welche vollständig auf Javascript aufsetzt.
Ziel sollte es sein dem Benutzer eine Oberfläche zu bieten, auf der er mehrere Boxen mit Inhalt dargestellt bekommt. Jede Box enspricht einem Favoriten. Durch klicken auf einen Schalter in [...]]]></description>
			<content:encoded><![CDATA[<p>Ich beschäftige mich derzeit sehr viel mit <a href="http://de.wikipedia.org/wiki/Ajax_(Programmierung)" title="Wikipedia: AJAX">AJAX</a>. Dazu verwende ich zur Vereinfachung der Programmierung die von den <a href="http://mootools.net/" title="mootools.net">mootools</a> gelieferte AJAX-Bibliothek, welche vollständig auf Javascript aufsetzt.<br />
Ziel sollte es sein dem Benutzer eine Oberfläche zu bieten, auf der er mehrere Boxen mit Inhalt dargestellt bekommt. Jede Box enspricht einem Favoriten. Durch klicken auf einen Schalter in der Box sollte die Box aus den Favoriten entfernt werden. Um jetzt ein Neuladen zu vermeiden setze ich wie schon besagt AJAX ein. Das eigentliche entfernen stellt kein Problem dar, nur wollte ich dazu die Box ausblenden lassen: erst ausblenden (opacity) und danach die Breite verkleinern (width), so dass die Box nicht mehr angezeigt wird.<br />
<span id="more-7"></span>Bei den mootools sind die einzelnen Schritte recht schnell erledigt:</p>
<p>Ausblenden:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> ausblenden <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Fx.<span style="color: #660066;">Style</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'id-der-box'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'opacity'</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span>duration<span style="color: #339933;">:</span> <span style="color: #CC0000;">500</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;  <span style="color: #006600; font-style: italic;">// Effekt initialisieren</span>
ausblenden.<span style="color: #660066;">start</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span>0<span style="color: #009900;">&#41;</span>; <span style="color: #006600; font-style: italic;">// Ausblenden starten (von 1 (sichtbar) bis 0 (unsichtbar))</span></pre></div></div>

<p>Größe ändern:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> resizebox <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Fx.<span style="color: #660066;">Style</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'id-der-box'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'width'</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span>duration<span style="color: #339933;">:</span> <span style="color: #CC0000;">500</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;  <span style="color: #006600; font-style: italic;">// Effekt initialisieren</span>
resizebox.<span style="color: #660066;">start</span><span style="color: #009900;">&#40;</span>0<span style="color: #009900;">&#41;</span>; <span style="color: #006600; font-style: italic;">// Größe ändern starten, vom aktuellen Wert bis 0</span></pre></div></div>

<p>Danach blende ich die Box noch komplett aus:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'id-der-box'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">setStyle</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'display'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'none'</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>Jetzt stand ich allerdings vor dem Problem, das die mootools nicht mit der Ausführung des einen Effekts warten bevor der nächste gestartet wurde. Die Folge war, dass das komplette Ausblenden sofort zugeschlagen hat ohne die beiden anderen Effekte abzuwarten. Nach langem erfolglosen suchen in der Dokumentation und im Forum von den mootools habe ich mich dazu entschlossen die onComplete-Funktion zu nutzen. Durch die Verschachtelung sicher kein eleganter Weg, aber es Funktioniert erst einmal:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> ausblenden <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Fx.<span style="color: #660066;">Style</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'id-der-box'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'opacity'</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span>
duration<span style="color: #339933;">:</span> <span style="color: #CC0000;">500</span><span style="color: #339933;">,</span>
onComplete<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #006600; font-style: italic;">// hier jetzt den 2. Effekt initialisieren</span>
<span style="color: #003366; font-weight: bold;">var</span> resizebox <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Fx.<span style="color: #660066;">Style</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'id-der-box'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'width'</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span>duration<span style="color: #339933;">:</span> <span style="color: #CC0000;">500</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;
<span style="color: #006600; font-style: italic;">// .. und starten ..</span>
resizebox.<span style="color: #660066;">start</span><span style="color: #009900;">&#40;</span>0<span style="color: #009900;">&#41;</span>;
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;  <span style="color: #006600; font-style: italic;">// Effekt initialisieren</span>
ausblenden.<span style="color: #660066;">start</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span>0<span style="color: #009900;">&#41;</span>; <span style="color: #006600; font-style: italic;">// Ausblenden starten (von 1 (sichtbar) bis 0 (unsichtbar))</span></pre></div></div>

<p>Das ganze habe ich in einem <a href="http://trafex.de/demos/mootools/multiple.fx.html" title="Demo multiple fx">Demo</a> zusammengefasst.</p>
]]></content:encoded>
			<wfw:commentRss>http://trafex.de/blog/7/mehrere-nacheinander-folgende-style-veranderungen-mit-mootools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IE 7 &#8211; Ein Entwickler-Alptraum?</title>
		<link>http://trafex.de/blog/3/ie-7-ein-entwickler-alptraum/</link>
		<comments>http://trafex.de/blog/3/ie-7-ein-entwickler-alptraum/#comments</comments>
		<pubDate>Mon, 08 Jan 2007 13:04:08 +0000</pubDate>
		<dc:creator>StefanB</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Kompatibilität]]></category>
		<category><![CDATA[WebDev]]></category>

		<guid isPermaLink="false">http://trafex.de/blog/3/ie-7-ein-entwickler-alptraum/</guid>
		<description><![CDATA[Microsoft hat nach langer Zeit den Internet Explorer 7 veröffentlicht. Jedoch nicht als optional zu installierendes Programm, wie es bei der Version 5.5 und 6 der Fall war, sondern als Update, welches früher oder später den meisten XP-Benutzer &#8220;aufgezwungen&#8221; wird. Bei Vista wird der IE 7 von Anfang an mit dabei sein.
Für WebEntwickler stellt sich [...]]]></description>
			<content:encoded><![CDATA[<p>Microsoft hat nach langer Zeit den Internet Explorer 7 veröffentlicht. Jedoch nicht als optional zu installierendes Programm, wie es bei der Version 5.5 und 6 der Fall war, sondern als Update, welches früher oder später den meisten XP-Benutzer &#8220;aufgezwungen&#8221; wird. Bei Vista wird der IE 7 von Anfang an mit dabei sein.<br />
Für WebEntwickler stellt sich jedoch das Problem, das bei einem Update der IE 6 und dessen Layout-Engine mit normalen Mitteln nicht mehr nutzbar ist. Da es jedoch (noch) eine Menge an IE 6-Nutzern gibt, muss man seine Seiten auch für diesen Browser optimieren. Es bleibt also nichts anderes übrig als einen 2. PC oder eine 2. Installation anzufertigen, die man nicht Updatet oder das Update weitestgehend unterdrückt. Auch Windows2000 stellt hierbei eine Alternative dar.<br />
Eine andere Möglichkeit wird von <a title="golem.de" href="http://www.golem.de/">golem.de</a> aufgezeigt: Microsoft selber bietet ein fertiges <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=21EABB90-958F-4B64-B5F1-73D0A413C8EF&#038;displaylang=en">Image</a> für <a title="Virtual PC 2004 SP1" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=6D58729D-DFA8-40BF-AFAF-20BCB7F01CD1&#038;displaylang=en">Virtual-PC</a> an, welche ein aktiviertes Windows XP mit SP2 sowie den IE6 enthält. Der Haken ist jedoch, das diese Version nur bis zum 1. April 2007 funktioniert. Was danach wird ist von Microsoft derzeit nicht zu erfahren.<br />
Eine auch danach nutzbare möglichkeit bietet <a href="http://tredosoft.com/">TredoSoft</a> an: mit <a href="http://tredosoft.com/Multiple_IE">dieser Lösung</a> lassen sich mehrere Internet Explorer-Versionen parallel betreiben. Somit ist es möglich zum installierten und im Betriebssystem verankerten IE7 auch der IE 6 und weitere ältere Versionen des Internet Explorers betreiben.</p>
<p>Zurück zum eigentlichen Thema.</p>
<p>Auf <a href="http://it-gears.blogspot.com/">IT Gears</a> wurde ein <a href="http://it-gears.blogspot.com/2007/01/ie7-nightmare-for-web-developers.html">interessanter Artikel</a> zur Kompatibilität des IE 7 zu div. Web-Standards veröffentlicht.<br />
Demnach können unter dem IE 7 keine Input-Image-Tags bei Formularen mehr zum Absenden des Forumlars benutzt werden. Auch gibt es wohl einige Unannehmlichkeiten in Bezug auf das Ausfüllen von Formularen mittels Javascript.<br />
Es müssen also wieder Massen von Websites auf Kompatibilität mit dem IE 7 getestet und für diesen Browser angepasst werden. Wobei doch der IE 7 sich eigentlich viel mehr an bestehende Standards halten sollte.</p>
]]></content:encoded>
			<wfw:commentRss>http://trafex.de/blog/3/ie-7-ein-entwickler-alptraum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.247 seconds -->
