<?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>kloeschen.com >> &#187; Javascript</title>
	<atom:link href="http://www.kloeschen.com/kategorie/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kloeschen.com</link>
	<description>A Blog around my experience with XHTML, PHP and CSS</description>
	<lastBuildDate>Tue, 05 Dec 2006 22:29:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Valide Formulare per Knopfdruck</title>
		<link>http://www.kloeschen.com/valide-formulare-per-knopfdruck/59/</link>
		<comments>http://www.kloeschen.com/valide-formulare-per-knopfdruck/59/#comments</comments>
		<pubDate>Mon, 18 Jul 2005 18:23:58 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://kloeschen.com/valide-formulare-per-knopfdruck/59/</guid>
		<description><![CDATA[Wer sich schonmal mit WebFormularen beschäftigt hat, wird schon das ein oder andere mal verzweifelt sein. Da vergisst man mal den entscheidenden Tag oder muss mal wieder eine Validierung des Inhalts neu programmieren. Diese Arbeit wird uns abgenommen. Ein Online-Generator für Formulare!]]></description>
			<content:encoded><![CDATA[<p>Mit dem  <a href="http://www.formassembly.com/form-builder.php">FormBuilder</a> baut  man sich recht schnell ein Formular zusammen und vergisst mit Sicherheit nicht, den Inhalt zu validieren, die entsprechenden Felder als notwendig zu markieren oder eine Feldbeschreibung hinzuzufügen.<br />
Das Ganze wird dann noch durch eine Vorschau vervollständigt.<br />
<span id="more-59"></span><br />
Selbst <a href="http://adactio.com/atmedia2005/">unobtrusive DOM Javascript</a> kann man per Knopfdruck hinzufügen. Ich bin begeistert. Meine nächsten Formulare werde ich damit erstellen.<br />
Hier ein Screenshot dazu:<br />
<img src="/wp-content/images/formtest.gif" width="353" height="248" alt="formbuilder beispiel" title="formbuilder beispiel" /></p>
<p><a href="http://www.formassembly.com/form-builder.php">Ruhig mal ausprobieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kloeschen.com/valide-formulare-per-knopfdruck/59/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mouseover DOM Inspector Favelet</title>
		<link>http://www.kloeschen.com/mouseover-dom-inspector-favelet/45/</link>
		<comments>http://www.kloeschen.com/mouseover-dom-inspector-favelet/45/#comments</comments>
		<pubDate>Sat, 02 Jul 2005 07:48:40 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://kloeschen.com/?p=45</guid>
		<description><![CDATA[Ein Bookmarklet oder Favelet, welches bei der Analyse einer Webseite hilft. Es zeigt alle Informationen eines Elements an, wenn man mit der Maus darüber fährt. MouseOver DOM Inspector Favelet]]></description>
			<content:encoded><![CDATA[<p>Ein Bookmarklet oder Favelet, welches bei der Analyse einer Webseite hilft. Es zeigt alle Informationen eines Elements an, wenn man mit der Maus darüber fährt. <a href="http://slayeroffice.com/?c=/content/tools/modi.html">MouseOver DOM Inspector Favelet</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kloeschen.com/mouseover-dom-inspector-favelet/45/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>standard konforme links in ein neues fenster (wordpress plugin)</title>
		<link>http://www.kloeschen.com/standard-konforme-links-in-ein-neues-fenster-wordpress-plugin/44/</link>
		<comments>http://www.kloeschen.com/standard-konforme-links-in-ein-neues-fenster-wordpress-plugin/44/#comments</comments>
		<pubDate>Sat, 02 Jul 2005 07:30:10 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Wordpress Plugins]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://kloeschen.com/standard-konforme-links-in-ein-neues-fenster-wordpress-plugin/44/</guid>
		<description><![CDATA[Ich fand das Tutorial auf sitepoint (<a href="http://www.sitepoint.com/article/standards-compliant-world">New-Window Links in a Standards-Compliant World</a>) recht gut, da ich immernoch der Meinung bin, dass sich externe links durchaus in einem neuen Fenster öffnen dürfen.]]></description>
			<content:encoded><![CDATA[<p>Ich weiss, dass es auch mit wordpress nur schwer gelingt, <a href="http://validator.w3.org/">validen XHTML Code</a> rauszuschmeissen, aber man sollte sich doch bemühen, so nah daran zu sein, wie nur irgend möglich. Das Tutorial geht davon aus, das externe Links mit <strong>rel=&quot;external&quot;</strong> gekennzeichnet sind. Um dies zu erreichen, kann man das natürlich in seinem Post selbst erledigen, oder aber man nimmt sich das bereits vorhandene Plugin <a href="http://txfx.net/2005/03/24/wp-identify-external-links/">Identify External Links</a>.<br />
Dort gibt es eine Funktion, die man leicht für diese Zwecke editieren kann:<br />
<friendlycode lang='php'><br />
<?php<br />
function parse_external_links($matches){<br />
    if ( wp_get_domain_name_from_uri($matches[3]) != wp_get_domain_name_from_uri($_SERVER["HTTP_HOST"]) ){<br />
        return '<a href="' . $matches[2] . '//' . $matches[3] . '"' . $matches[1] . $matches[4] . ' class="extlink">&#8216; . $matches[5] . &#8216;</a>&#8216;;<br />
    } else {<br />
        return &#8216;<a href="' . $matches[2] . '//' . $matches[3] . '"' . $matches[1] . $matches[4] . '>&#8216; . $matches[5] . &#8216;</a>&#8216;;<br />
    }<br />
}<br />
?><br />
</friendlycode></p>
<p>man tausche einfach das <strong>class=&quot;extlink&quot;</strong> mit <strong>rel=&quot;external&quot;</strong> und schon sind die Links richtig markiert.</p>
<p>Nun gilt es noch das Javascript richtig einzubinden und mit dem Onload Event zu verbinden. Das Einbinden nimmt man entweder per Hand im header seines Themes vor, oder benutzt eine kleine WordPress Action:<br />
<friendlycode lang='php'><br />
<?php<br />
function insert_externallinks_script(){<br />
echo '<script type="text/javascript" src="/externallinks.js"></script>';<br />
}<br />
add_action('wp_head','insert_externallinks_script');<br />
?><br />
</friendlycode></p>
<p>Natürlich muss die Datei <strong>externallinks.js</strong> dann im Stammverzeichnis des Webservers liegen. Jetzt muss in dieser Datei unter Umständen der Onload Event verbessert werden. Je nachdem, ob schon weitere Javascripts eingebunden wurden, überschreibt man sonst so den OnloadHandler.<br />
<friendlycode lang='javascript'><br />
var oldonload = window.onload;</p>
<p>		if (typeof window.onload != 'function') {<br />
			window.onload = function() {<br />
			 externalLinks();<br />
			liveSearchInit();<br />
			}<br />
		} else {<br />
			window.onload = function() {<br />
				oldonload();<br />
				liveSearchInit();<br />
				externalLinks();<br />
			}<br />
		}<br />
</friendlycode><br />
Es wird erst ausgelesen, ob schon eine Funktion mit dem OnloadHandler verknüpft wurde. Wenn nein, wird die neue Funktion damit verbunden, sonst wird eine neue Funktion erstellt, welche die alte aufruft und anschliessend die <strong>externalLinks()</strong>. Der Autor des livesearch-plugins wollte z.B. dass die livesearchInit per onload geladen wird:<br />
<friendlycode lang='xml'><br />
<body onload="liveSearchInit()"><br />
</friendlycode><br />
Da dies aber jede vorher konfigurierte OnLoad Funktion überschreiben würde, habe ich sie kurzerhand hierhin verlagert. Und was soll ich sagen, externe Links öffnen sich in einem neuen Fenster und die LiveSuche funktioniert auch noch.</p>
<p>Mit Hilfe von <a href="http://www.w3.org/TR/REC-CSS2/selector.html#attribute-selectors">CSS (Ja, auch CSS unterstützt Attribute Selektoren)</a> kann man die externen Links dann auch noch gesondert stylen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kloeschen.com/standard-konforme-links-in-ein-neues-fenster-wordpress-plugin/44/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bildunterschriften semantisch korrekt?</title>
		<link>http://www.kloeschen.com/bildunterschriften-semantisch-korrekt/38/</link>
		<comments>http://www.kloeschen.com/bildunterschriften-semantisch-korrekt/38/#comments</comments>
		<pubDate>Thu, 30 Jun 2005 10:15:42 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://kloeschen.com/bildunterschriften-semantisch-korrekt/38/</guid>
		<description><![CDATA[Aus Zeitungen sind wir es gewohnt, unter den Bildern kurze Anreisser zu lesen, die uns ermutigen, den ganzen Artikel zu  lesen. Im Web benutzt man bei Bildern aber meistens nur das title Attribute. Nun gibt es eine Idee, wie es auch anders geht.]]></description>
			<content:encoded><![CDATA[<p>Wichtig ist, dass das Ganze semantisch korrekt bleibt und mit möglichst wenig zusätzlichen Tags auskommt. Hier nun der <a href="http://www.mediaevent.de/article.php/20040926103515715">Ansatz von Ulrike Häßler</a>:<br />
Wir benutzen eine <a href="http://de.selfhtml.org/html/text/listen.htm#definition"> Definitions-Liste</a>, die ja bekanntlich dazu dient, einen Begriff mit entsprechenden Definitionen oder Erklärungen in Verbindung zu bringen. Wenn man nun das Bild als Begriff sieht, kann man eine Definitionsliste benutzen, um die Definition als Bildunterschrift zu setzen. Mit ein Wenig Style sieht das  Ganze auch aus wie gewollt und floated sogar&#8230;<br />
(<strong>Beispiel von der Entdeckerin!</strong>)<br />
<friendlycode lang='xml'></p>
<dl class=“meImgLeft“ style=“width: 200px;“>
<dt><img src=“bild.gif“ width=“200“ height=“150“ alt=“Rettungsanker“ /></dt>
<dd>Bildlegende</dd>
</dl>
<p></friendlycode><br />
Passendes CSS:<br />
<friendlycode lang='css'><br />
dl.meImgLeft { float: left; margin-right: 1em; }<br />
dl.meImgLeft dt { margin-bottom: 0; }<br />
dl.meImgLeft dd { margin: 0; } // verhindert das Einrücken und den Abstand nach oben<br />
</friendlycode></p>
<p>So und der gewagte DOM Hacker könnte das Ganze dann noch automagisch regeln, indem er den TitleTag ausliest und dann das entsprechende XHTML um das Bild herum erstellt. Aber diese Arbeit soll denen überlassen sein, die es können.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kloeschen.com/bildunterschriften-semantisch-korrekt/38/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>neue Nutzeroberfläche für del.icio.us dank AJAX</title>
		<link>http://www.kloeschen.com/neue-nutzeroberflache-fur-delicious-dank-ajax/29/</link>
		<comments>http://www.kloeschen.com/neue-nutzeroberflache-fur-delicious-dank-ajax/29/#comments</comments>
		<pubDate>Mon, 27 Jun 2005 15:42:15 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://kloeschen.com/?p=29</guid>
		<description><![CDATA[Auf meiner Suche nach erfolgreichen Seiten schaue ich mir immer mal 
wieder die <a href="http://del.icio.us/popular" title="delicious populars">Populären Seiten auf del.icio.us</a> an. 
Diese Seiten sind ja nicht umsonst so populär, dass sie von mehr als 1000 Usern gebookmarked (geiles Wort!) werden.]]></description>
			<content:encoded><![CDATA[<p><span id="more-29"></span></p>
<p>Bei diesem Besuch ist mir heute der <a href="http://johnvey.com/features/deliciousdirector/" title="neue benutzeroberfläche fuer del.icio.us">del.icio.us direc.tor</a> aufgefallen.<br />
Warum diese Seite so beliebt ist, ist schnell klar. Eine neue leicht zu bedienende und intuitive Benutzeroberfläche (UI &#8211; User Interface)<br />
die Johnvey Hwang da per AJAX zusammengebaut hat, überzeugt schnell. </p>
<p>Da mich auch immer interessiert, wie solche Sachen funktionieren, habe ich mich mal daran gemacht, und habe mir den Quelltext angeschaut.<br />
Hier sind meine Ergebnisse:</p>
<p>Johnvey bietet ein Bookmarklet, welches die ganze Sache startet:<br />
<friendlycode lang='javascript'><br />
javascript:void((function() {<br />
var element=document.createElement(&#8216;script&#8217;);<br />
element.setAttribute(&#8216;src&#8217;, &#8216;http://johnvey.com/features/deliciousdirector/dboot.js&#8217;);<br />
document.body.appendChild(element)})())<br />
</friendlycode></p>
<p>Im Prinzip ganz einfach, wenngleich ich selbst nie auf solche Ideen kommen könnte. Es wird ein Element &quot;script&quot;<br />
mit dem Attribut &quot;src&quot; mit dem Wert &quot;http://johnvey.com/features/deliciousdirector/dboot.js&quot; erzeugt nud<br />
dem body-element angehangen. Dies ergibt also quasi folgenden Code:</p>
<p><friendlycode lang='xml'><br />
<html><body><script src="http://johnvey.com/features/deliciousdirector/dboot.js" /></body></html><br />
</friendlycode></p>
<p>Das reicht doch wohl als Analyse, oder?<br />
Nein, na gut!<br />
Schauen wir uns also das referenzierte Script (dboot.js) auch noch an.</p>
<p><friendlycode lang='javascript'><br />
var d = '<br />
<form><img src="http://johnvey.com/features/deliciousdirector/director-logo.gif" width="206" height="18" alt="Delicious Director" style="float:left;padding:2px 10px 0 0" />';<br />
d += '<br />
<input id="q" name="q" type="text" size="60" onkeyup="rd.filter(this.value)" autocomplete="off" />';<br />
d += '<br />
<input type="checkbox" id="h" checked="checked" onchange="rd.th()" /><label for="h">Highlight Terms</label></form>
<p>';<br />
d += '<br />
<h2>Tag Browser</h2>
<p>';<br />
d += '
<div id="browser">';<br />
d += '
<div id="br1" class="browserPane"></div>
<p>';<br />
d += '
<div id="br2" class="browserPane"></div>
<p>';<br />
d += '
<div id="br3" class="browserPane"></div>
<p>';<br />
d += '
<div id="br4" class="browserPane"></div>
<p>';<br />
d += '
<div id="br5" class="browserPane"></div>
<p>';<br />
d += '
<div id="br6" class="browserPane"></div>
<p>';<br />
d += '</p></div>
<p>';<br />
d += '<br />
<h2 id="summary">Bookmarks</h2>
<p>';<br />
d += '
<div id="ps">
<p>Loading your del.icio.us bookmarks...</p>
</div>
<p>';<br />
d += '
<p id="ft">&copy; 2005 Johnvey Hwang. <a href="http://johnvey.com/features/deliciousdirector/" target="_blank">del.icio.us direc.tor project page</a>. Released under the <a href="http://www.gnu.org/copyleft/gpl.html" target="_blank">GPL</a>.</p>
<p>';<br />
function init() {<br />
	var i, a, main;<br />
	document.body.innerHTML = "";<br />
	document.body.innerHTML = d;<br />
	for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {<br />
	  if(a.getAttribute("rel").indexOf("style") != -1) {<br />
	    a.disabled = true;<br />
	  }<br />
	}<br />
	var ns = document.createElement("link");<br />
	ns.rel = "stylesheet";<br />
	ns.type = "text/css";<br />
	ns.href = "http://johnvey.com/features/deliciousdirector/d.css";<br />
	document.body.appendChild(ns);<br />
	var js = document.createElement("script");<br />
	js.language = "javascript";<br />
	js.src = "http://johnvey.com/features/deliciousdirector/d.js";<br />
	document.body.appendChild(js);<br />
	document.title += " (Direc.tor)";<br />
}<br />
init();<br />
</friendlycode></p>
<p>Nun, hier baut sich Johnvey ein Grundgerüst für den del.icio.us direc.tor. Ein Suchformular, 6 Unterfenster und ein Prozessfenster,<br />
alle durch ein eigenes Div repräsentiert. Mit der init function bindet er ein StyleSheet (d.css) und ein Javascript in diese Seite ein.<br />
Das CSS setzt &quot;nur&quot; ein paar Farben und positioniert die einzelnen DIVs. Keine allzu besonderen Kniffe.</p>
<p>Nun also doch noch ein Blick in das neue Javascript (d.js):<br />
Ausgeführt wird folgender Code:<br />
<friendlycode lang='javascript'><br />
var rd = new jvDeliciousFinder();</p>
<p>function start() {<br />
	rd.init();</p>
<p>	paintBrowser(null, 1);<br />
	document.getElementById("q").focus();<br />
	document.getElementById("h").checked = rd.hilite;<br />
}</p>
<p>window.onload = start;<br />
start();<br />
</friendlycode></p>
<p>es wird also ein neuer jvDeliciousFinder erzeugt und mit rd.init() initiiert. Was dort passiert, ist recht einfach.<br />
Es werden einige Objekte erzeugt, die später noch gebraucht werden, wie z.B. this.xslProc oder this.xmlReq. Letzterer<br />
wird benutzt, um alle Links aus del.icio.us zu lesen, die der Benutzer dort gespeichert hat.<br />
<friendlycode lang='javascript'><br />
this.allPosts = this.xmlReq.getDocument("/api/posts/all");<br />
</friendlycode><br />
Mit paintBrowser(null,1); wird der Browser das erste Mal geladen. Dies bedeutet, das in dem DIV mit der ID &quot;br1&quot; alle Tags<br />
des Benutzers angezeigt werden, welche dann weiter selektiert werden können.<br />
Der Rest ist schon fast Geschichte. Es existieren noch Funktionen, die z.B. den Suchbegriff hervorheben oder die Liste der Links nach den Tags filtern.<br />
Das Ganze wird unter anderem durch dynamisch erzeugten XSL erreicht.</p>
<p>Die dazu benutzen Funktionen sind zum Teil recht kompliziert, wenngleich sehr effizient. Es lohnt sich auf jeden Fall mal einen Blick darauf zu werfen ;)<br />
<strong>[LINKS:]</strong></p>
<ul>
<li><a href="http://johnvey.com/features/deliciousdirector">del.icio.us direc.tor</a></li>
<li><a href="http://johnvey.com/features/deliciousdirector/dboot.js">dboot.js</a></li>
<li><a href="http://johnvey.com/features/deliciousdirector/d.js">d.js</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.kloeschen.com/neue-nutzeroberflache-fur-delicious-dank-ajax/29/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>endlich eine live suche auch hier</title>
		<link>http://www.kloeschen.com/endlich-eine-live-suche-auch-hier/20/</link>
		<comments>http://www.kloeschen.com/endlich-eine-live-suche-auch-hier/20/#comments</comments>
		<pubDate>Wed, 15 Jun 2005 21:14:14 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://kloeschen.com/endlich-eine-live-suche-auch-hier/</guid>
		<description><![CDATA[was ich schonmal eingebaut hatte um es wieder zu entfernen, ist nun wieder drin, die Live Suche (auch livesearch genannt)]]></description>
			<content:encoded><![CDATA[<p>zwar kein plugin, aber trotzdem sehr nett: livesearch für wordpress. Die Idee dahinter ist recht einfach, während man im Suchfeld einen Begriff eintippt, wird bereits die Datenbank durchsucht und einige Vorschläge präsentiert. Einfach mal ausprobieren. Achja, die Anleitung zum Einbau gibt es hier: <a href="http://fernando.dubtribe.com/archives/2005/06/01/livesearch-for-wordpress-1512/">LiveSearch for WordPress 1.5.1.2</a> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.kloeschen.com/endlich-eine-live-suche-auch-hier/20/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Die wichtigsten Bookmarks f&#252;r Webdesigner und Webentwickler</title>
		<link>http://www.kloeschen.com/die-wichtigsten-bookmarks-fr-webdesigner-und-webentwickler/8/</link>
		<comments>http://www.kloeschen.com/die-wichtigsten-bookmarks-fr-webdesigner-und-webentwickler/8/#comments</comments>
		<pubDate>Mon, 30 May 2005 10:48:18 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://kloeschen.com/die-wichtigsten-bookmarks-fr-webdesigner-und-webentwickler/</guid>
		<description><![CDATA[Was kann man da noch mehr zu sagen? Wichtiger Link! Die wichtigsten Bookmarks f&#252;r Webdesigner und Webentwickler]]></description>
			<content:encoded><![CDATA[<p>Was kann man da noch mehr zu sagen? Wichtiger Link! <a href="http://www.alvit.de/vf/de/bookmarks-fuer-webdesigner-und-webentwickler.html">Die wichtigsten Bookmarks f&uuml;r Webdesigner und Webentwickler</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kloeschen.com/die-wichtigsten-bookmarks-fr-webdesigner-und-webentwickler/8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#220;ber den Einsatz von Javascript</title>
		<link>http://www.kloeschen.com/ueber-den-einsatz-von-javascript/4/</link>
		<comments>http://www.kloeschen.com/ueber-den-einsatz-von-javascript/4/#comments</comments>
		<pubDate>Thu, 19 May 2005 14:09:05 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://kloeschen.com/?p=4</guid>
		<description><![CDATA[Ich war noch nie ein Fan von Javascript. Bei meinem Server weiß ich, was unterstützt wird, beim Client weiß ich das nicht. Daher muss man da wirklich für alle Eventualitäten das Javascript anpassen. Nun gibt es aber mittlerweile neue Denkansätze, die mich überzeugen konnten, Javascript eine Chance zu geben.]]></description>
			<content:encoded><![CDATA[<p><span id="more-4"></span><br />
<h2>Wof&uuml;r darf man kein Javascript einsetzen</h2>
<p>Javascript sollte nie eine zwingende Vorraussetzung sein, um die Webseite benutzen zu k&ouml;nnen. Ausnahmen sind hier lediglich extrem homogene Umgebungen, wie Firmenintranets. Eine Administrationsoberfl&auml;che könnte man auch noch voll<br />
auf Javascript aufbauen, sollte sich aber im Klaren dar&uuml;ber sein, dass man so auch potentielle Kunden verlieren kann.</p>
<h2>Der gescheite Einsatz von Javascript</h2>
<p>Wenn wir Javascript aber als &quot;Addon&quot; einsetzen und unseren Internet-Auftritt etwas &quot;aufpeppen&quot;, dann ist das in Ordnung.<br />
Wichtig ist, dass der Nutzer nicht darauf angewiesen ist, Javascript zu aktivieren. Mit <a href="http://www.drweb.de/trickkiste/tricks76.shtml">entsprechenden Browserweichen</a> ist es sogar legitim, sich auf spezielle Browser zu beschr&auml;nken, wenn andere diese Features nicht bieten. Bei dem Einsatz von Javascript darf nat&uuml;rlich die Barrierefreiheit nicht eingeschr&auml;nkt werden.</p>
<h2>Das neue Javascript Buzz-Word: AJAX</h2>
<p>Dank <a href="http://developer.apple.com/internet/webcontent/xmlhttpreq.html">XMLHTTPRequest</a> ist es möglich, via Javascript Daten mit einem Server auszutauschen, ohne dazu ein Formular abzuschicken, oder die Seite neu zu laden. Die vom Server zur&uuml;ckgelieferten Daten k&ouml;nnen dann wieder in die Seite eingebaut werden. Ich werde dazu bald einen kompletten Beitrag schreiben. Hier nur soviel dazu: Auch hierbei kann man nur Erfolg haben, wenn man eine Ausweichm&auml;glichkeit ohne Javascript bieten kann. <a href="http://www.fiftyfoureleven.com/resources/programming/xmlhttprequest">AJAX</a> ist noch recht neu und die angebotenen L&ouml;sungen werden von Tag zu Tag besser, sicherer und freier an Barrieren.</p>
<h2>Tolle L&ouml;sungen Dank Javascript</h2>
<ul>
<li> <strong>Rounded Corners without Images/Markup</strong><br />
<a href="http://pro.html.it/articoli/id_599/idcat_31/pro.html">Javascript erm&ouml;glicht es uns, runde Ecken an fast jedes HTML-Element zu bekommen, ohne den Einsatz von Bildern oder zus&auml;tzlichen Quellcode</a>. Dazu wird per Javascript das n&ouml;tige HTML-Markup an das Element angebaut und dann via CSS abgerundet. Der Entdecker hat daf&uuml;r einige sch&ouml;ne <a href="http://pro.html.it/esempio/nifty2/nifty10js.html">Beispiele auf seiner Seite</a>.</li>
<li> <strong>Javascript Form Validation</strong><br />
Man kann die <a href="http://developer.apple.com/internet/webcontent/validation.html">Formular Eingaben eines Nutzers schon &uuml;berpr&uuml;fen</a>, bevor das Formular zum Server gesendet wird. Dies erspart Serverlast, Traffic und einen genervten Nutzer. Auf eine Validierung der Daten auf Serverseite darf nat&uuml;rlich nicht verzichtet werden, da sonst mit ausgeschalteten Javascript das Formular missbraucht werden kann (oder man postet von einer anderen Seite auf die Formular-verarbeitende Seite&#8230;)
</li>
<li> <strong>AJAX</strong><br />
Dank Javascript (respektive AJAX) kann man in einem Formular dem Nutzer Auswahlm&ouml;glichkeiten anhand seiner Eingaben bieten. Wie hier auf der Seite im Suchformular wird nach jeder Ver&auml;nderung im Formularfeld eine Datenbankabfrage gestartet, die die vorhandenen Eintr&auml;ge nach dieser Zeichenfolge durchsucht und dem Nutzer als Auswahlliste angezeigt. (<a href="http://www.google.com/webhp?complete=1&#038;hl=en">Beispiel Google Suggest Beta in English</a>)
</li>
</ul>
<h2>Fazit</h2>
<p>Javascript hat den Glanz des B&ouml;sen verloren (wenngleich es noch zur dunklen Seite der Macht geh&ouml;rt). Man kann wirklich feine Dinge damit anstellen, wenn man nicht darauf fixiert ist, eine Javascript-L&ouml;sung zu benutzen. Sch&ouml;ne Exemplare findet man nat&uuml;rlich bei der &quot;<a href="http://kloeschen.com/deine-lieblingssuchmaschine-ist-nicht-google/">Suchmaschine Deiner Wahl</a>&quot; oder in Vollendung bei <a href="http://gmail.google.com">Google Mail</a> oder <a href="http://maps.google.com">Google Maps</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kloeschen.com/ueber-den-einsatz-von-javascript/4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

