<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>Slideshow Bob - JavaScript</title>
    <link>http://people.avona.com/~thomas.werner/</link>
    <description>So viele bunte Zeichen. Überall.</description>
    <dc:language>de</dc:language>
    <generator>Serendipity 1.4.1 - http://www.s9y.org/</generator>
    <pubDate>Fri, 12 Mar 2010 16:34:08 GMT</pubDate>

    <image>
        <url>http://people.avona.com/~thomas.werner/templates/slideshowbob/img/s9y_banner_small.png</url>
        <title>RSS: Slideshow Bob - JavaScript - So viele bunte Zeichen. Überall.</title>
        <link>http://people.avona.com/~thomas.werner/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>Script-Entwicklung für Greasemonkey</title>
    <link>http://people.avona.com/~thomas.werner/index.php?/archives/73-Script-Entwicklung-fuer-Greasemonkey.html</link>
            <category>Internet</category>
            <category>JavaScript</category>
    
    <comments>http://people.avona.com/~thomas.werner/index.php?/archives/73-Script-Entwicklung-fuer-Greasemonkey.html#comments</comments>
    <wfw:comment>http://people.avona.com/~thomas.werner/wfwcomment.php?cid=73</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://people.avona.com/~thomas.werner/rss.php?version=2.0&amp;type=comments&amp;cid=73</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Werner)</author>
    <content:encoded>
    [TOC3]Greasemonkey ist eine nette, aber auch irgendwie anarchistische Firefox-Erweiterung, welche es erlaubt, von Benutzern selbst gebastelten JavaScript-Code auf x-beliebigen Websites auszuführen. Sinn und Zweck ist die Veränderung der Seiten. Klingt erstmal komisch, hat aber viele, viele sinnvolle Anwendungsgebiete, insbesondere auf populären Websites wie StudiVZ, Youtube und Co.&lt;br /&gt;
Mit Greasemonkey kann man Websites um Funktionalitäten erweitern, die so nicht angeboten werden. Da sind der Vorstellungskraft keine Grenzen gesetzt und darüber hinaus erleichtert einem diese Erweiterung sehr viel Arbeit, wenn man vorhat, eine kleine, eigene Erweiterung für Firefox zu basteln (was recht kompliziert ausfallen kann).&lt;br /&gt;
&lt;br /&gt;
In diesem Artikel gehe ich auf die Script-Entwicklung mit Greasemonkey ein, erläutere Dinge, die man beachten muß und ein paar fiese Bugs, über die ich selbst gestolpert bin.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;&lt;a href=&quot;http://people.avona.com/~thomas.werner/index.php?/archives/73-Script-Entwicklung-fuer-Greasemonkey.html#extended&quot;&gt;&quot;Script-Entwicklung für Greasemonkey&quot; vollständig lesen&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 11 Mar 2010 19:54:00 +0100</pubDate>
    <guid isPermaLink="false">http://people.avona.com/~thomas.werner/index.php?/archives/73-guid.html</guid>
    <category>erweiterung</category>
<category>firefox</category>
<category>greasemonkey</category>
<category>internet</category>
<category>javascript</category>
<category>tutorial</category>
<category>xpath</category>

</item>
<item>
    <title>JavaScript und das Krümelmonster</title>
    <link>http://people.avona.com/~thomas.werner/index.php?/archives/71-JavaScript-und-das-Kruemelmonster.html</link>
            <category>JavaScript</category>
    
    <comments>http://people.avona.com/~thomas.werner/index.php?/archives/71-JavaScript-und-das-Kruemelmonster.html#comments</comments>
    <wfw:comment>http://people.avona.com/~thomas.werner/wfwcomment.php?cid=71</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://people.avona.com/~thomas.werner/rss.php?version=2.0&amp;type=comments&amp;cid=71</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Werner)</author>
    <content:encoded>
    Ich hab mich kürzlich erstmals mit dem Thema Cookies unter JavaScript beschäftigt und muß sagen: meine Fresse, das ist wirklich zum Haareraufen schlecht gelöst. Daher gibts jetzt von mir eine kleine Klasse, die den Umgang mit Cookies deutlich vereinfacht:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;javascript&quot; style=&quot;text-align: left&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt; * A Cookie Manager Class.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt; * @author tw&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt; */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt; Cookie&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* Gets a cookie value by its name.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* @param name The cookie&#039;s name.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* @return String&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;*/&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;get&lt;/span&gt; = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;eval&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;var regex=/&#039;&lt;/span&gt; + &lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt; + &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\\&lt;/span&gt;s*=&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\\&lt;/span&gt;s*([^;]+)&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\\&lt;/span&gt;s*(;|$)/;&#039;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; result = document.&lt;span style=&quot;color: #006600;&quot;&gt;cookie&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;match&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;regex&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;result&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;return&lt;/span&gt; result&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #CC0000;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* Sets a cookie.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* @param name The cookie&#039;s name.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* @param value The according value.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* @param expiresOn [Optional] A Date object specifying the expiration date.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;*&amp;#160; &amp;#160; &amp;#160; &amp;#160; if omitted, the cookie expires in seven days from now.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;*/&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;set&lt;/span&gt; = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;, value, expiresOn&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;typeof&lt;/span&gt; expiresOn == &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;undefined&#039;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; expiresOn = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;new&lt;/span&gt; Date;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;// Keep for a week&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; expiresOn.&lt;span style=&quot;color: #006600;&quot;&gt;setTime&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;expiresOn.&lt;span style=&quot;color: #006600;&quot;&gt;getTime&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span style=&quot;color: #CC0000;&quot;&gt;604800000&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; document.&lt;span style=&quot;color: #006600;&quot;&gt;cookie&lt;/span&gt; = &lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt; + &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;=&#039;&lt;/span&gt; + value.&lt;span style=&quot;color: #006600;&quot;&gt;paramEncode&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;; expires=&#039;&lt;/span&gt; +&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; expiresOn.&lt;span style=&quot;color: #006600;&quot;&gt;toGMTString&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* Sets an &amp;quot;unlimited&amp;quot; cookie, meaning that the expiration date is set&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* to the maximum.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* @param name The cookie&#039;s name.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* @param value The according value.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;*/&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;setUnlimited&lt;/span&gt; = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;, value&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; expiresOn = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;new&lt;/span&gt; Date;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; expiresOn.&lt;span style=&quot;color: #006600;&quot;&gt;setTime&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #CC0000;&quot;&gt;2147483647000&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;, value, expiresOn&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* Deletes a cookie.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* @param name The cookie&#039;s name.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;*/&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;remove&lt;/span&gt; = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; expiresOn = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;new&lt;/span&gt; Date;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; expiresOn.&lt;span style=&quot;color: #006600;&quot;&gt;setTime&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #CC0000;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;, &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;&#039;&lt;/span&gt;, expiresOn&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt; &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Verwendet wird der ganze Spaß folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;javascript&quot; style=&quot;text-align: left&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; cookie = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;new&lt;/span&gt; Cookie;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;// Hält 7 Tage lang&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;cookie.&lt;span style=&quot;color: #006600;&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;meinCookie&#039;&lt;/span&gt;, &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;xyz&#039;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;// Hält &amp;quot;ewig&amp;quot; - also genau genommen bis 2037 oder so:&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;cookie.&lt;span style=&quot;color: #006600;&quot;&gt;setUnlimited&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;ewig&#039;&lt;/span&gt;, &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;jaja&#039;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;; &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Viel Spaß damit. 
    </content:encoded>

    <pubDate>Tue, 24 Nov 2009 19:15:44 +0100</pubDate>
    <guid isPermaLink="false">http://people.avona.com/~thomas.werner/index.php?/archives/71-guid.html</guid>
    <category>cookies</category>
<category>javascript</category>
<category>oop</category>

</item>
<item>
    <title>[JavaScript] Die Probleme einer Vererbungskette</title>
    <link>http://people.avona.com/~thomas.werner/index.php?/archives/70-JavaScript-Die-Probleme-einer-Vererbungskette.html</link>
            <category>JavaScript</category>
    
    <comments>http://people.avona.com/~thomas.werner/index.php?/archives/70-JavaScript-Die-Probleme-einer-Vererbungskette.html#comments</comments>
    <wfw:comment>http://people.avona.com/~thomas.werner/wfwcomment.php?cid=70</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://people.avona.com/~thomas.werner/rss.php?version=2.0&amp;type=comments&amp;cid=70</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Werner)</author>
    <content:encoded>
    [TOC3]Ich habe zuvor bereits einen ausführlichen Artikel über die Möglichkeiten und Grenzen von Objektorientierung und Vererbung in JavaScript geschrieben (siehe &lt;a href=&#039;http://people.avona.com/~thomas.werner/index.php?/archives/48-Objektorientierte-Programmierung-in-JavaScript.html&#039;&gt;Objektorientierte Programmierung in JavaScript&lt;/a&gt;).&lt;br /&gt;
Gerade eben bin ich allerdings auf ein handfestes Problem gestoßen, und zwar konnte ich mit der gängigen Technik nicht vernünftig die Kette von Eltern-Konstruktormethoden von einer tieferen Kindklasse aus aufrufen.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;&lt;a href=&quot;http://people.avona.com/~thomas.werner/index.php?/archives/70-JavaScript-Die-Probleme-einer-Vererbungskette.html#extended&quot;&gt;&quot;[JavaScript] Die Probleme einer Vererbungskette&quot; vollständig lesen&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 23 Nov 2009 17:32:00 +0100</pubDate>
    <guid isPermaLink="false">http://people.avona.com/~thomas.werner/index.php?/archives/70-guid.html</guid>
    <category>javascript</category>
<category>oop</category>
<category>problem</category>
<category>tutorial</category>

</item>
<item>
    <title>JSE v1.0 - Ein Quellcode-Editor für den Webbrowser</title>
    <link>http://people.avona.com/~thomas.werner/index.php?/archives/58-JSE-v1.0-Ein-Quellcode-Editor-fuer-den-Webbrowser.html</link>
            <category>JavaScript</category>
    
    <comments>http://people.avona.com/~thomas.werner/index.php?/archives/58-JSE-v1.0-Ein-Quellcode-Editor-fuer-den-Webbrowser.html#comments</comments>
    <wfw:comment>http://people.avona.com/~thomas.werner/wfwcomment.php?cid=58</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://people.avona.com/~thomas.werner/rss.php?version=2.0&amp;type=comments&amp;cid=58</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Werner)</author>
    <content:encoded>
    Als ich vor zwei Jahren meinen Blog frisch einrichtete, veröffentlichte ich einen Artikel über meinen Quellcode-Editor, den ich damals in JavaScript schrieb. In erster Linie ließ ich meinen Ärger über die Cross-Browser-Problematik bezüglich Tastatur-Key-Codes aus, welche abhängig von Browser und Plattform voneinander abweichen können.&lt;br /&gt;
&lt;br /&gt;
Aufgrund dieser und weiterer Probleme war das Projekt seither auch auf Eis. Ich hab&#039;s aber vorhin nochmal ausgegraben, weitgehend korrigiert, sodaß es immerhin einigermaßen sauber unter Firefox für Linux klappt und stelle es nun wie den Quellcode von &lt;a href=&#039;http://people.avona.com/~thomas.werner/index.php?/archives/57-PixPush-1.0-JavaScript-Bitmap-Malprogramm.html&#039;&gt;PixPush&lt;/a&gt; ebenso &lt;a href=&quot;http://people.avona.com/~thomas.werner/uploads/Programmierung/JSE/jse.zip&quot; title=&quot;jse.zip&quot; target=&quot;_blank&quot;&gt;zur freien Verfügung unter der Creative Commons 3.0 Lizenz&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Ebenso stelle ich eine &lt;a href=&quot;http://people.avona.com/~thomas.werner/uploads/Programmierung/JSE/jsetest.html&quot; title=&quot;jsetest.html&quot; target=&quot;_blank&quot; style=&quot;font-weight:bold&quot;&gt;Live-Testversion zum Rumspielen&lt;/a&gt; (bzw. Code schreiben) zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;serendipity_imageComment_center&quot; style=&quot;width: 500px&quot;&gt;&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;!-- s9ymdb:477 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;500&quot; height=&quot;144&quot;  src=&quot;http://people.avona.com/~thomas.werner/uploads/Programmierung/JSE/jse.jpg&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;Schön bunt sieht&#039;s aus. Einfach mal selbst ausprobieren: &lt;a href=&quot;http://people.avona.com/~thomas.werner/uploads/Programmierung/JSE/jsetest.html&quot; title=&quot;jsetest.html&quot; target=&quot;_blank&quot;&gt;Live-Testversion&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h3&gt;Features&lt;/h3&gt;&lt;br /&gt;
Die Editor-Klasse ist recht flexibel gestaltet. So kann man sich eigene Regeln für simple Code-Completion sowie Syntax-Highlighting festlegen. Standardmäßig wird Hervorhebung für die Programmierspache Java unterstützt.&lt;br /&gt;
Ansonsten werden Look &amp;amp; Feel klassischer Quellcode-Editoren über Tricksereien nachgebildet.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Automatische Zeilennumerierung&lt;/li&gt;&lt;li&gt;Syntax-Highlighting&lt;/li&gt;&lt;li&gt;Navigation über Cursortasten sowie Bild auf und ab&lt;/li&gt;&lt;li&gt;Entfernen und Backspace funktioniert, wie man es von einem Editor erwartet&lt;/li&gt;&lt;li&gt;Tab-Taste für Zeileneinschub&lt;/li&gt;&lt;li&gt;Automatischer Zeileneinschub basierend auf vorangegangene Zeile&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Quellcode und Support&lt;/h3&gt;&lt;br /&gt;
Vorab: ich werde keinen aktiven Support bieten, es aber dennoch begrüßen, wenn ihr mir Feedback über Probleme an dieser Stelle als Kommentar zukommen lassen würdet. Ich geb&#039; das Ding so frei wie es ist und werde allerdings nur dann daran weitermachen, wenn ich Zeit und Lust dazu habe.&lt;br /&gt;
&lt;br /&gt;
Ich lade jeden dazu ein, selbst Verbesserungen und Erweiterungen vorzunehmen, sowie die vorhandenen Probleme bezüglich der Tastatur-Key-Codes usw. zu beheben (weitere Details zu den Problemen und TODOs befinden sich im Quellcode).&lt;br /&gt;
Über Rückmeldungen würde ich mich jedenfalls freuen, sollte jemand am Code etwas ändern oder den Editor irgendwo einsetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://people.avona.com/~thomas.werner/uploads/Programmierung/JSE/jse.zip&quot; title=&quot;jse.zip&quot; target=&quot;_blank&quot;&gt;jse.zip&lt;/a&gt; 
    </content:encoded>

    <pubDate>Fri, 11 Sep 2009 17:07:00 +0200</pubDate>
    <guid isPermaLink="false">http://people.avona.com/~thomas.werner/index.php?/archives/58-guid.html</guid>
    <category>creative commons</category>
<category>editor</category>
<category>javascript</category>
<category>programmierung</category>
<category>source code</category>

</item>
<item>
    <title>PixPush 1.0 - JavaScript Bitmap-Malprogramm</title>
    <link>http://people.avona.com/~thomas.werner/index.php?/archives/57-PixPush-1.0-JavaScript-Bitmap-Malprogramm.html</link>
            <category>JavaScript</category>
    
    <comments>http://people.avona.com/~thomas.werner/index.php?/archives/57-PixPush-1.0-JavaScript-Bitmap-Malprogramm.html#comments</comments>
    <wfw:comment>http://people.avona.com/~thomas.werner/wfwcomment.php?cid=57</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://people.avona.com/~thomas.werner/rss.php?version=2.0&amp;type=comments&amp;cid=57</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Werner)</author>
    <content:encoded>
    &lt;div class=&quot;serendipity_imageComment_right&quot; style=&quot;width: 250px&quot;&gt;&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;a class=&#039;serendipity_image_link&#039; href=&#039;http://people.avona.com/~thomas.werner/uploads/Programmierung/PixPush/pixpush_screen.jpg&#039; target=&quot;_blank&quot;&gt;&lt;!-- s9ymdb:443 --&gt;&lt;img class=&quot;serendipity_image_right&quot; width=&quot;250&quot; height=&quot;168&quot;  src=&quot;http://people.avona.com/~thomas.werner/uploads/Programmierung/PixPush/pixpush_screen.serendipityThumb.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;Screenshot von PixPush v1.0 - Selber damit rumspielen kann man hier: &lt;a href=&quot;http://people.avona.com/~thomas.werner/uploads/Programmierung/PixPush/pixpush.html&quot; title=&quot;pixpush.html&quot; target=&quot;_blank&quot;&gt;PixPush v1.0 Live-Version&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;Vor zwei Jahren veröffentlichte ich einen ausführlichen Artikel zum Thema &lt;a href=&#039;http://people.avona.com/~thomas.werner/index.php?/archives/2-Bitspiele-Schnelle-Multiplikation-der-alten-Schule.html&#039;&gt;Bitspiele - Schnelle Multiplikation der alten Schule&lt;/a&gt;. Der Anlaß war mein damals programmiertes, browser-basiertes Bitmap-Malprogramm, welches ich nun wie damals angekündigt &lt;a href=&quot;http://people.avona.com/~thomas.werner/uploads/Programmierung/PixPush/pixpush_v1.0.zip&quot; title=&quot;pixpush_v1.0.zip&quot; target=&quot;_blank&quot;&gt;unter der Creative Commons 3.0 Lizenz veröffentliche&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Auf folgender Seite kann man mit dem Malprogramm etwas herumspielen: &lt;a href=&quot;http://people.avona.com/~thomas.werner/uploads/Programmierung/PixPush/pixpush.html&quot; title=&quot;pixpush.html&quot; target=&quot;_blank&quot; style=&quot;font-weight:bold&quot;&gt;PixPush v1.0 Live-Version&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Da zum damaligen Zeitpunkt der sogenannte Canvas-HTML-Tag nicht sonderlich weit verbreitet war, implementierte ich das Malprogramm auf Basis von DIV-Tags - daher leidet etwas die Performance. Unter Konqueror sollte man eher die Finger davon lassen. Unter Firefox und Opera läuft&#039;s an sich ganz gut.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;serendipity_imageComment_right&quot; style=&quot;width: 250px&quot;&gt;&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;a class=&#039;serendipity_image_link&#039; href=&#039;http://people.avona.com/~thomas.werner/uploads/Programmierung/PixPush/pixpush_patrick.jpg&#039; target=&quot;_blank&quot;&gt;&lt;!-- s9ymdb:468 --&gt;&lt;img class=&quot;serendipity_image_right&quot; width=&quot;250&quot; height=&quot;168&quot;  src=&quot;http://people.avona.com/~thomas.werner/uploads/Programmierung/PixPush/pixpush_patrick.serendipityThumb.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;Mit meinem PixelPush-Patrick mache ich mal den Anfang.&lt;/div&gt;&lt;/div&gt;&lt;h3&gt;Wettbewerb&lt;/h3&gt;&lt;br /&gt;
Schreibt mir Kommentare und schickt mir Links auf eure, mit PixPush erstellten, Kunstwerke. Hierbei zählen nur Screenshots der gesamten PixPush-Programmoberfläche. Es gibt hierbei keinen Einsendeschluß.&lt;br /&gt;
&lt;br /&gt;
Zu gewinnen gibt es eventuell einen feuchten Händedruck - sollten wir uns einmal leibhaftig gegenübertreten.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;&lt;a href=&quot;http://people.avona.com/~thomas.werner/index.php?/archives/57-PixPush-1.0-JavaScript-Bitmap-Malprogramm.html#extended&quot;&gt;&quot;PixPush 1.0 - JavaScript Bitmap-Malprogramm&quot; vollständig lesen&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 09 Sep 2009 16:52:00 +0200</pubDate>
    <guid isPermaLink="false">http://people.avona.com/~thomas.werner/index.php?/archives/57-guid.html</guid>
    <category>creative commons</category>
<category>grafik</category>
<category>javascript</category>
<category>kunst</category>
<category>programmierung</category>
<category>wettbewerb</category>

</item>
<item>
    <title>Objektorientierte Programmierung in JavaScript</title>
    <link>http://people.avona.com/~thomas.werner/index.php?/archives/48-Objektorientierte-Programmierung-in-JavaScript.html</link>
            <category>JavaScript</category>
    
    <comments>http://people.avona.com/~thomas.werner/index.php?/archives/48-Objektorientierte-Programmierung-in-JavaScript.html#comments</comments>
    <wfw:comment>http://people.avona.com/~thomas.werner/wfwcomment.php?cid=48</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://people.avona.com/~thomas.werner/rss.php?version=2.0&amp;type=comments&amp;cid=48</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Werner)</author>
    <content:encoded>
    [TOC3] Objektorientierte Programmierung (OOP) ist in JavaScript eine ungewöhnliche Sache. Die ersten Einblicke in JavaScript-Code gaukeln einem alles vor, was man von OOP an sich gewohnt ist, aber Klassen sucht man darin vergeblich. Das liegt daran, daß JavaScript &lt;a href=&quot;http://de.wikipedia.org/wiki/Prototypenbasierte_Programmierung&quot; title=&quot;Wikipedia-Artikel über prototypbasierte Programmierung&quot;&gt;prototypbasiert&lt;/a&gt; ist. Es gibt also keine Klassen als Vorlage für Objekte, sondern Objekte wie String, Array etc. existieren bereits von vornherein, und werden über den &quot;new&quot;-Operator geklont, um neue Objekte zu schaffen, welche die gleichen Eigenschaften des Originals haben.&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel behandelt Techniken der Vererbung und wie man so etwas wie Klassenkonstrukte unter JavaScript nachbilden kann. &lt;br /&gt;&lt;a href=&quot;http://people.avona.com/~thomas.werner/index.php?/archives/48-Objektorientierte-Programmierung-in-JavaScript.html#extended&quot;&gt;&quot;Objektorientierte Programmierung in JavaScript&quot; vollständig lesen&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 21 Jul 2009 13:20:00 +0200</pubDate>
    <guid isPermaLink="false">http://people.avona.com/~thomas.werner/index.php?/archives/48-guid.html</guid>
    <category>JavaScript</category>
<category>Objektorientierung</category>
<category>OOP</category>
<category>Programmierung</category>
<category>Tutorial</category>

</item>
<item>
    <title>Annahme ausgelöst und nicht aufgefangen - oder JavaScript im Internet Explorer</title>
    <link>http://people.avona.com/~thomas.werner/index.php?/archives/18-Annahme-ausgeloest-und-nicht-aufgefangen-oder-JavaScript-im-Internet-Explorer.html</link>
            <category>JavaScript</category>
    
    <comments>http://people.avona.com/~thomas.werner/index.php?/archives/18-Annahme-ausgeloest-und-nicht-aufgefangen-oder-JavaScript-im-Internet-Explorer.html#comments</comments>
    <wfw:comment>http://people.avona.com/~thomas.werner/wfwcomment.php?cid=18</wfw:comment>

    <slash:comments>10</slash:comments>
    <wfw:commentRss>http://people.avona.com/~thomas.werner/rss.php?version=2.0&amp;type=comments&amp;cid=18</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Werner)</author>
    <content:encoded>
    &lt;div class=&quot;serendipity_imageComment_left&quot; style=&quot;width: 323px&quot;&gt;&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;!-- s9ymdb:53 --&gt;&lt;img width=&#039;323&#039; height=&#039;159&#039;  src=&quot;http://people.avona.com/~thomas.werner/uploads/ie_fehler.png&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;Eine JavaScript-Fehlermeldung des aktuellen Microsoft Internet Explorer 7. Offenbar verwechselten die Übersetzer &quot;exception&quot; mit &quot;expectation&quot;.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
Seit jeher beschert Microsoft uns Webdesignern und -programmierern mit seiner &quot;Internet Explorer&quot;-Produktserie (IE) eine schier unerschöpfliche Quelle an, zu meisternden, Herausforderungen.&lt;br /&gt;
Meine ersten Gehversuche in JavaScript, waren damals noch geprägt von einer gigantischen Menge an Inkompatibilitäten zwischen den großen Browsern (Netscape und IE), wobei die Räder gerne neu erfunden wurden, und die Hersteller für gleiche Funktionalitäten ihre eigenen Spezifikationen und Methoden bereithielten.&lt;br /&gt;
Dieses Problem läpperte sich im Verlauf der Jahre und die meisten Browser halten sich mittlerweile auch brav an die Standards.&lt;br /&gt;
Da ich mittlerweile hauptsächlich unter Linux entwickle, testete ich auch ein neues JavaScript-Projekt von mir, eine ganze Weile lang hauptsächlich unter Firefox, Konqueror sowie Opera, da bei mir der IE leider auch mit Hilfe von Wine und dem praktischen Tool &lt;a href=&quot;http://www.tatanka.com.br/ies4linux/page/Main_Page&quot; &gt;IEs4Linux&lt;/a&gt;, mittlerweile nicht mehr funktioniert.&lt;br /&gt;
Gestern testete ich meinen Code allerdings unter Windows, um genau zu sein, unter Internet Explorer 7; und mußte feststellen, daß nichts, meiner harten Arbeit, darin laufen wollte. &lt;br /&gt;&lt;a href=&quot;http://people.avona.com/~thomas.werner/index.php?/archives/18-Annahme-ausgeloest-und-nicht-aufgefangen-oder-JavaScript-im-Internet-Explorer.html#extended&quot;&gt;&quot;Annahme ausgelöst und nicht aufgefangen - oder JavaScript im Internet Explorer&quot; vollständig lesen&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 27 Aug 2007 19:06:00 +0200</pubDate>
    <guid isPermaLink="false">http://people.avona.com/~thomas.werner/index.php?/archives/18-guid.html</guid>
    <category>internet explorer</category>
<category>javascript</category>
<category>programmierung</category>

</item>
<item>
    <title>Ein Array sagt mehr als tausend Worte.</title>
    <link>http://people.avona.com/~thomas.werner/index.php?/archives/4-Ein-Array-sagt-mehr-als-tausend-Worte..html</link>
            <category>JavaScript</category>
    
    <comments>http://people.avona.com/~thomas.werner/index.php?/archives/4-Ein-Array-sagt-mehr-als-tausend-Worte..html#comments</comments>
    <wfw:comment>http://people.avona.com/~thomas.werner/wfwcomment.php?cid=4</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://people.avona.com/~thomas.werner/rss.php?version=2.0&amp;type=comments&amp;cid=4</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Werner)</author>
    <content:encoded>
    &lt;!-- s9ymdb:12 --&gt;&lt;img width=&#039;422&#039; height=&#039;25&#039; style=&quot;border: 0px; padding-left: 5px; padding-right: 5px;&quot; src=&quot;http://people.avona.com/~thomas.werner/uploads/array_spricht.jpg&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
So auch ich selbst: JavaScript und Array-Funktionen. Ein bunter Strauß der guten Laune und Abendunterhaltung. &lt;strong&gt;Nicht.&lt;/strong&gt; &lt;br /&gt;&lt;a href=&quot;http://people.avona.com/~thomas.werner/index.php?/archives/4-Ein-Array-sagt-mehr-als-tausend-Worte..html#extended&quot;&gt;&quot;Ein Array sagt mehr als tausend Worte.&quot; vollständig lesen&lt;/a&gt;
    </content:encoded>

    <pubDate>Sat, 03 Feb 2007 20:32:44 +0100</pubDate>
    <guid isPermaLink="false">http://people.avona.com/~thomas.werner/index.php?/archives/4-guid.html</guid>
    <category>Datenstrukturen</category>
<category>JavaScript</category>
<category>Kuriosität</category>

</item>
<item>
    <title>Bunt und strukturiert - so muß es sein!</title>
    <link>http://people.avona.com/~thomas.werner/index.php?/archives/3-Bunt-und-strukturiert-so-muss-es-sein!.html</link>
            <category>JavaScript</category>
    
    <comments>http://people.avona.com/~thomas.werner/index.php?/archives/3-Bunt-und-strukturiert-so-muss-es-sein!.html#comments</comments>
    <wfw:comment>http://people.avona.com/~thomas.werner/wfwcomment.php?cid=3</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://people.avona.com/~thomas.werner/rss.php?version=2.0&amp;type=comments&amp;cid=3</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Werner)</author>
    <content:encoded>
    &lt;!-- s9ymdb:9 --&gt;&lt;img width=&#039;378&#039; height=&#039;213&#039; style=&quot;border: 0px; padding-left: 5px; padding-right: 5px;&quot; src=&quot;http://people.avona.com/~thomas.werner/uploads/js_code_editor.jpg&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
Dies ist der Bildausschnitt eines typischen Quellcode-Editors - offenbar nichts Besonderes.&lt;br /&gt;
&lt;br /&gt;
Es hat dennoch etwas Besonderes an sich, denn dieser Editor läuft eingebettet in einem beliebigen Webbrowser - weder über Java-Applet noch über ein Flash-Film, sondern mit Hilfe eines JavaScript-Programms. &lt;br /&gt;&lt;a href=&quot;http://people.avona.com/~thomas.werner/index.php?/archives/3-Bunt-und-strukturiert-so-muss-es-sein!.html#extended&quot;&gt;&quot;Bunt und strukturiert - so muß es sein!&quot; vollständig lesen&lt;/a&gt;
    </content:encoded>

    <pubDate>Sat, 03 Feb 2007 17:40:42 +0100</pubDate>
    <guid isPermaLink="false">http://people.avona.com/~thomas.werner/index.php?/archives/3-guid.html</guid>
    <category>Editor</category>
<category>JavaScript</category>

</item>

</channel>
</rss>