<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.stephanschlegel.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=93.208.111.215</id>
	<title>Wikizone - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.stephanschlegel.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=93.208.111.215"/>
	<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Spezial:Beitr%C3%A4ge/93.208.111.215"/>
	<updated>2026-05-06T19:50:24Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=JavaScript_-_Page_Transitions&amp;diff=22016</id>
		<title>JavaScript - Page Transitions</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=JavaScript_-_Page_Transitions&amp;diff=22016"/>
		<updated>2017-03-01T08:26:25Z</updated>

		<summary type="html">&lt;p&gt;93.208.111.215: /* Inhalte dynamisch nachladen mit AJAX */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Tools und Links ==&lt;br /&gt;
* http://git.blivesta.com/animsition/&lt;br /&gt;
* http://designdrizzle.com/15-amazing-page-transitions-effects-tutorials-in-jquery-and-css3/&lt;br /&gt;
* https://webdesign.tutsplus.com/tutorials/how-to-create-an-ajax-driven-theme-for-processwire--cms-26579&lt;br /&gt;
https://tympanus.net/Development/FullscreenLayoutPageTransitions/&lt;br /&gt;
&lt;br /&gt;
== Tutorials ==&lt;br /&gt;
&lt;br /&gt;
== Quickstart ==&lt;br /&gt;
=== AJAX Strategie ===&lt;br /&gt;
* 2 verschachtelte Container&lt;br /&gt;
* Der äußere beinhaltet alle Inhalte. An den inneren werden die neuen Inhalte angehängt (append) &lt;br /&gt;
* Page Transition wird ausgeführt und der innere Container mit den alten Inhalten ausgeblendet.&lt;br /&gt;
* Evtl. Browser History aktualisieren und URL &lt;br /&gt;
* Evtl. Seitenskripte neu initialisieren&lt;br /&gt;
&lt;br /&gt;
== Inhalte dynamisch nachladen mit AJAX ==&lt;br /&gt;
=== Seitenrequest auslösen ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;jQuery&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$(function() { &lt;br /&gt;
    var href;&lt;br /&gt;
    var title;&lt;br /&gt;
 &lt;br /&gt;
    $(&amp;#039;body&amp;#039;).on(&amp;#039;click&amp;#039;,&amp;#039;a.ajax-link&amp;#039;,function(e) { // nav link clicked &lt;br /&gt;
        href = $(this).attr(&amp;quot;href&amp;quot;);&lt;br /&gt;
        title = $(this).attr(&amp;quot;name&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
        // load content via AJAX&lt;br /&gt;
        loadContent(href);&lt;br /&gt;
 &lt;br /&gt;
        // prevent click and reload&lt;br /&gt;
        e.preventDefault();&lt;br /&gt;
    });&lt;br /&gt;
 &lt;br /&gt;
    function loadContent(url){ // Load content&lt;br /&gt;
 &lt;br /&gt;
        // variable for page data&lt;br /&gt;
        $pageData = &amp;#039;&amp;#039;;&lt;br /&gt;
 &lt;br /&gt;
        // send Ajax request&lt;br /&gt;
        $.ajax({&lt;br /&gt;
            type: &amp;quot;POST&amp;quot;,&lt;br /&gt;
            url: url,&lt;br /&gt;
            data: { ajax: true },&lt;br /&gt;
            success: function(data,status){&lt;br /&gt;
                $pageData = data;&lt;br /&gt;
            }&lt;br /&gt;
        }).done(function(){ // when finished and successful&lt;br /&gt;
 &lt;br /&gt;
            // construct new content&lt;br /&gt;
            $pageData = &amp;#039;&amp;lt;div class=&amp;quot;content no-opacity ajax&amp;quot;&amp;gt;&amp;#039; + $pageData + &amp;#039;&amp;lt;/div&amp;gt;&amp;#039;;&lt;br /&gt;
 &lt;br /&gt;
            // add content to page&lt;br /&gt;
            $(&amp;#039;.content-container&amp;#039;).append($pageData);&lt;br /&gt;
 &lt;br /&gt;
            // remove old content&lt;br /&gt;
            $(&amp;#039;.content.current-content&amp;#039;).remove();&lt;br /&gt;
 &lt;br /&gt;
            // show new content and clean up classes&lt;br /&gt;
            $(this).removeClass(&amp;#039;no-opacity&amp;#039;).removeClass(&amp;#039;ajax&amp;#039;).addClass(&amp;#039;current-content&amp;#039;);&lt;br /&gt;
             &lt;br /&gt;
        }); // end of ajax().done()&lt;br /&gt;
    } // end of loadContent()&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>93.208.111.215</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=JavaScript_-_Page_Transitions&amp;diff=22015</id>
		<title>JavaScript - Page Transitions</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=JavaScript_-_Page_Transitions&amp;diff=22015"/>
		<updated>2017-03-01T08:26:06Z</updated>

		<summary type="html">&lt;p&gt;93.208.111.215: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Tools und Links ==&lt;br /&gt;
* http://git.blivesta.com/animsition/&lt;br /&gt;
* http://designdrizzle.com/15-amazing-page-transitions-effects-tutorials-in-jquery-and-css3/&lt;br /&gt;
* https://webdesign.tutsplus.com/tutorials/how-to-create-an-ajax-driven-theme-for-processwire--cms-26579&lt;br /&gt;
https://tympanus.net/Development/FullscreenLayoutPageTransitions/&lt;br /&gt;
&lt;br /&gt;
== Tutorials ==&lt;br /&gt;
&lt;br /&gt;
== Quickstart ==&lt;br /&gt;
=== AJAX Strategie ===&lt;br /&gt;
* 2 verschachtelte Container&lt;br /&gt;
* Der äußere beinhaltet alle Inhalte. An den inneren werden die neuen Inhalte angehängt (append) &lt;br /&gt;
* Page Transition wird ausgeführt und der innere Container mit den alten Inhalten ausgeblendet.&lt;br /&gt;
* Evtl. Browser History aktualisieren und URL &lt;br /&gt;
* Evtl. Seitenskripte neu initialisieren&lt;br /&gt;
&lt;br /&gt;
== Inhalte dynamisch nachladen mit AJAX ==&lt;br /&gt;
=== Seitenrequest auslösen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$(function() { &lt;br /&gt;
    var href;&lt;br /&gt;
    var title;&lt;br /&gt;
 &lt;br /&gt;
    $(&amp;#039;body&amp;#039;).on(&amp;#039;click&amp;#039;,&amp;#039;a.ajax-link&amp;#039;,function(e) { // nav link clicked &lt;br /&gt;
        href = $(this).attr(&amp;quot;href&amp;quot;);&lt;br /&gt;
        title = $(this).attr(&amp;quot;name&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
        // load content via AJAX&lt;br /&gt;
        loadContent(href);&lt;br /&gt;
 &lt;br /&gt;
        // prevent click and reload&lt;br /&gt;
        e.preventDefault();&lt;br /&gt;
    });&lt;br /&gt;
 &lt;br /&gt;
    function loadContent(url){ // Load content&lt;br /&gt;
 &lt;br /&gt;
        // variable for page data&lt;br /&gt;
        $pageData = &amp;#039;&amp;#039;;&lt;br /&gt;
 &lt;br /&gt;
        // send Ajax request&lt;br /&gt;
        $.ajax({&lt;br /&gt;
            type: &amp;quot;POST&amp;quot;,&lt;br /&gt;
            url: url,&lt;br /&gt;
            data: { ajax: true },&lt;br /&gt;
            success: function(data,status){&lt;br /&gt;
                $pageData = data;&lt;br /&gt;
            }&lt;br /&gt;
        }).done(function(){ // when finished and successful&lt;br /&gt;
 &lt;br /&gt;
            // construct new content&lt;br /&gt;
            $pageData = &amp;#039;&amp;lt;div class=&amp;quot;content no-opacity ajax&amp;quot;&amp;gt;&amp;#039; + $pageData + &amp;#039;&amp;lt;/div&amp;gt;&amp;#039;;&lt;br /&gt;
 &lt;br /&gt;
            // add content to page&lt;br /&gt;
            $(&amp;#039;.content-container&amp;#039;).append($pageData);&lt;br /&gt;
 &lt;br /&gt;
            // remove old content&lt;br /&gt;
            $(&amp;#039;.content.current-content&amp;#039;).remove();&lt;br /&gt;
 &lt;br /&gt;
            // show new content and clean up classes&lt;br /&gt;
            $(this).removeClass(&amp;#039;no-opacity&amp;#039;).removeClass(&amp;#039;ajax&amp;#039;).addClass(&amp;#039;current-content&amp;#039;);&lt;br /&gt;
             &lt;br /&gt;
        }); // end of ajax().done()&lt;br /&gt;
    } // end of loadContent()&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>93.208.111.215</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=JavaScript_-_Page_Transitions&amp;diff=22014</id>
		<title>JavaScript - Page Transitions</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=JavaScript_-_Page_Transitions&amp;diff=22014"/>
		<updated>2017-03-01T08:21:58Z</updated>

		<summary type="html">&lt;p&gt;93.208.111.215: /* Quickstart */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Tools und Links ==&lt;br /&gt;
* http://git.blivesta.com/animsition/&lt;br /&gt;
* http://designdrizzle.com/15-amazing-page-transitions-effects-tutorials-in-jquery-and-css3/&lt;br /&gt;
* https://webdesign.tutsplus.com/tutorials/how-to-create-an-ajax-driven-theme-for-processwire--cms-26579&lt;br /&gt;
&lt;br /&gt;
== Tutorials ==&lt;br /&gt;
&lt;br /&gt;
== Quickstart ==&lt;br /&gt;
=== AJAX Strategie ===&lt;br /&gt;
* 2 verschachtelte Container&lt;br /&gt;
* Der äußere beinhaltet alle Inhalte. An den inneren werden die neuen Inhalte angehängt (append) &lt;br /&gt;
* Page Transition wird ausgeführt und der innere Container mit den alten Inhalten ausgeblendet.&lt;br /&gt;
* Evtl. Browser History aktualisieren und URL &lt;br /&gt;
* Evtl. Seitenskripte neu initialisieren&lt;br /&gt;
=== Seitenrequest auslösen ===&lt;br /&gt;
&lt;br /&gt;
== Inhalte dynamisch nachladen mit AJAX ==&lt;/div&gt;</summary>
		<author><name>93.208.111.215</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=JavaScript_-_Page_Transitions&amp;diff=22013</id>
		<title>JavaScript - Page Transitions</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=JavaScript_-_Page_Transitions&amp;diff=22013"/>
		<updated>2017-03-01T08:19:03Z</updated>

		<summary type="html">&lt;p&gt;93.208.111.215: /* Quickstart */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Tools und Links ==&lt;br /&gt;
* http://git.blivesta.com/animsition/&lt;br /&gt;
* http://designdrizzle.com/15-amazing-page-transitions-effects-tutorials-in-jquery-and-css3/&lt;br /&gt;
* https://webdesign.tutsplus.com/tutorials/how-to-create-an-ajax-driven-theme-for-processwire--cms-26579&lt;br /&gt;
&lt;br /&gt;
== Tutorials ==&lt;br /&gt;
&lt;br /&gt;
== Quickstart ==&lt;br /&gt;
=== AJAX Strategie ===&lt;br /&gt;
* 2 verschachtelte Container&lt;br /&gt;
* Der äußere beinhaltet alle Inhalte. An den inneren werden die neuen Inhalte angehängt (append) &lt;br /&gt;
* Page Transition wird ausgeführt und der innere Container mit den alten Inhalten ausgeblendet.&lt;br /&gt;
* Evtl. Browser History aktualisieren und URL &lt;br /&gt;
* Evtl. Seitenskripte neu initialisieren&lt;br /&gt;
&lt;br /&gt;
== Inhalte dynamisch nachladen mit AJAX ==&lt;/div&gt;</summary>
		<author><name>93.208.111.215</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=JavaScript_-_Page_Transitions&amp;diff=22012</id>
		<title>JavaScript - Page Transitions</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=JavaScript_-_Page_Transitions&amp;diff=22012"/>
		<updated>2017-03-01T08:14:23Z</updated>

		<summary type="html">&lt;p&gt;93.208.111.215: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Tools und Links ==&lt;br /&gt;
* http://git.blivesta.com/animsition/&lt;br /&gt;
* http://designdrizzle.com/15-amazing-page-transitions-effects-tutorials-in-jquery-and-css3/&lt;br /&gt;
* https://webdesign.tutsplus.com/tutorials/how-to-create-an-ajax-driven-theme-for-processwire--cms-26579&lt;br /&gt;
&lt;br /&gt;
== Tutorials ==&lt;br /&gt;
&lt;br /&gt;
== Quickstart ==&lt;br /&gt;
&lt;br /&gt;
== Inhalte dynamisch nachladen mit AJAX ==&lt;/div&gt;</summary>
		<author><name>93.208.111.215</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=JavaScript_-_Page_Transitions&amp;diff=22011</id>
		<title>JavaScript - Page Transitions</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=JavaScript_-_Page_Transitions&amp;diff=22011"/>
		<updated>2017-03-01T08:10:22Z</updated>

		<summary type="html">&lt;p&gt;93.208.111.215: /* Tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Tools und Links ==&lt;br /&gt;
* http://git.blivesta.com/animsition/&lt;br /&gt;
* http://designdrizzle.com/15-amazing-page-transitions-effects-tutorials-in-jquery-and-css3/&lt;br /&gt;
&lt;br /&gt;
== Tutorials ==&lt;br /&gt;
&lt;br /&gt;
== Quickstart ==&lt;br /&gt;
&lt;br /&gt;
== Inhalte dynamisch nachladen mit AJAX ==&lt;/div&gt;</summary>
		<author><name>93.208.111.215</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=JavaScript_-_Page_Transitions&amp;diff=22010</id>
		<title>JavaScript - Page Transitions</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=JavaScript_-_Page_Transitions&amp;diff=22010"/>
		<updated>2017-03-01T08:09:47Z</updated>

		<summary type="html">&lt;p&gt;93.208.111.215: Die Seite wurde neu angelegt: „== Tools ==  == Tutorials ==  == Quickstart ==  == Inhalte dynamisch nachladen mit AJAX ==“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Tools ==&lt;br /&gt;
&lt;br /&gt;
== Tutorials ==&lt;br /&gt;
&lt;br /&gt;
== Quickstart ==&lt;br /&gt;
&lt;br /&gt;
== Inhalte dynamisch nachladen mit AJAX ==&lt;/div&gt;</summary>
		<author><name>93.208.111.215</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Javascript&amp;diff=22009</id>
		<title>Javascript</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Javascript&amp;diff=22009"/>
		<updated>2017-03-01T08:08:10Z</updated>

		<summary type="html">&lt;p&gt;93.208.111.215: /* Visualisierung und Visual FX */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Links == &lt;br /&gt;
http://onlinetools.org/ Freie Skripte von Christian Heilmann - gut programmiert&lt;br /&gt;
&lt;br /&gt;
http://wiki.selfhtml.org/wiki/Startseite&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== JavaScript Basics ==&lt;br /&gt;
[[JavaScript - Gültigkeit von Variablen (Scope)]]&lt;br /&gt;
&lt;br /&gt;
[[JavaScript - Arbeiten mit Objekten]]&lt;br /&gt;
&lt;br /&gt;
[[JavaScript - Skript-Organisation mit Modulen]]&lt;br /&gt;
&lt;br /&gt;
== JavaScript Frameworks ==&lt;br /&gt;
Inzwischen gibt es sehr viele gute Frameworks. Auch in diesem Wiki sind noch einige die nicht unbedingt hier verlinkt sind.&lt;br /&gt;
&lt;br /&gt;
[[jQuery]]&lt;br /&gt;
&lt;br /&gt;
[[jQTouch]]&lt;br /&gt;
&lt;br /&gt;
jQuery mobile - meine Empfehlung&lt;br /&gt;
&lt;br /&gt;
Sencha (mobil)&lt;br /&gt;
&lt;br /&gt;
=== Frameworks über CDN (Content Delivery Networks) ===&lt;br /&gt;
https://developers.google.com/speed/libraries/&lt;br /&gt;
&lt;br /&gt;
== JavaScript - nützliche Tools ==&lt;br /&gt;
=== Helfer ===&lt;br /&gt;
* History.js - Browser History für dynamisch nachgeladene Inhalte&lt;br /&gt;
* url() - URL Parser - https://github.com/websanova/js-url&lt;br /&gt;
* jQuery++ - http://jquerypp.com/&lt;br /&gt;
* http://modernizr.com/ - CSS und JS Feature Detection für Browser.&lt;br /&gt;
&lt;br /&gt;
=== Visualisierung und Visual FX ===&lt;br /&gt;
* jQuery Masonry (Dynamisches Kachellayout) - http://masonry.desandro.com/&lt;br /&gt;
* Page Visibility API (Animationen Pausieren wenn die Seite nicht sichtbar ist) - http://www.html5rocks.com/en/tutorials/pagevisibility/intro/&lt;br /&gt;
==== Page Transitions ====&lt;br /&gt;
[[JavaScript - Page Transitions]]&lt;br /&gt;
&lt;br /&gt;
[[JSON]] Datenstrukturen&lt;br /&gt;
&lt;br /&gt;
JavaScript - Strings: http://www.mediaevent.de/javascript/Javascript-Strings.html&lt;br /&gt;
&lt;br /&gt;
[[JavaScript - Zahlen formatieren]]&lt;br /&gt;
&lt;br /&gt;
===JavaScript - Minify, Obfuscation, Beautify===&lt;br /&gt;
[[JavaScript - Minify, Obfuscation, Beautify]]&lt;br /&gt;
&lt;br /&gt;
=== JavaScript - Datatables ===&lt;br /&gt;
[[JavaScript - Datatables]]&lt;br /&gt;
&lt;br /&gt;
=== JavaScript - Silbentrennung / Hyphenation ===&lt;br /&gt;
https://github.com/mnater/hyphenator&lt;br /&gt;
&lt;br /&gt;
== JQuery Plugins ==&lt;br /&gt;
&lt;br /&gt;
[[JQuery Tools (flowplayer.org)]]&lt;br /&gt;
&lt;br /&gt;
[[jQuery.Scrolly]] (Parallax)&lt;br /&gt;
&lt;br /&gt;
== JavaScript - Snippets ==&lt;br /&gt;
=== Tipps, Tricks und Snippets ===&lt;br /&gt;
[[JavaScript - Snippets]]&lt;br /&gt;
&lt;br /&gt;
[[JavaScript - Probleme lösen]]&lt;br /&gt;
&lt;br /&gt;
== JavaScript - Events / Ereignisse ==&lt;br /&gt;
[[JavaScript - Event-Handler]]&lt;br /&gt;
&lt;br /&gt;
== JavaScript - Debugging ==&lt;br /&gt;
[[JavaScript - Probleme im IE]]&lt;/div&gt;</summary>
		<author><name>93.208.111.215</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Javascript&amp;diff=22008</id>
		<title>Javascript</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Javascript&amp;diff=22008"/>
		<updated>2017-03-01T08:07:23Z</updated>

		<summary type="html">&lt;p&gt;93.208.111.215: /* JavaScript - nützliches */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Links == &lt;br /&gt;
http://onlinetools.org/ Freie Skripte von Christian Heilmann - gut programmiert&lt;br /&gt;
&lt;br /&gt;
http://wiki.selfhtml.org/wiki/Startseite&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== JavaScript Basics ==&lt;br /&gt;
[[JavaScript - Gültigkeit von Variablen (Scope)]]&lt;br /&gt;
&lt;br /&gt;
[[JavaScript - Arbeiten mit Objekten]]&lt;br /&gt;
&lt;br /&gt;
[[JavaScript - Skript-Organisation mit Modulen]]&lt;br /&gt;
&lt;br /&gt;
== JavaScript Frameworks ==&lt;br /&gt;
Inzwischen gibt es sehr viele gute Frameworks. Auch in diesem Wiki sind noch einige die nicht unbedingt hier verlinkt sind.&lt;br /&gt;
&lt;br /&gt;
[[jQuery]]&lt;br /&gt;
&lt;br /&gt;
[[jQTouch]]&lt;br /&gt;
&lt;br /&gt;
jQuery mobile - meine Empfehlung&lt;br /&gt;
&lt;br /&gt;
Sencha (mobil)&lt;br /&gt;
&lt;br /&gt;
=== Frameworks über CDN (Content Delivery Networks) ===&lt;br /&gt;
https://developers.google.com/speed/libraries/&lt;br /&gt;
&lt;br /&gt;
== JavaScript - nützliche Tools ==&lt;br /&gt;
=== Helfer ===&lt;br /&gt;
* History.js - Browser History für dynamisch nachgeladene Inhalte&lt;br /&gt;
* url() - URL Parser - https://github.com/websanova/js-url&lt;br /&gt;
* jQuery++ - http://jquerypp.com/&lt;br /&gt;
* http://modernizr.com/ - CSS und JS Feature Detection für Browser.&lt;br /&gt;
&lt;br /&gt;
=== Visualisierung und Visual FX ===&lt;br /&gt;
* jQuery Masonry (Dynamisches Kachellayout) - http://masonry.desandro.com/&lt;br /&gt;
* Page Visibility API (Animationen Pausieren wenn die Seite nicht sichtbar ist) - http://www.html5rocks.com/en/tutorials/pagevisibility/intro/&lt;br /&gt;
* JavaScript - Page Transitions&lt;br /&gt;
&lt;br /&gt;
[[JSON]] Datenstrukturen&lt;br /&gt;
&lt;br /&gt;
JavaScript - Strings: http://www.mediaevent.de/javascript/Javascript-Strings.html&lt;br /&gt;
&lt;br /&gt;
[[JavaScript - Zahlen formatieren]]&lt;br /&gt;
===JavaScript - Minify, Obfuscation, Beautify===&lt;br /&gt;
[[JavaScript - Minify, Obfuscation, Beautify]]&lt;br /&gt;
&lt;br /&gt;
=== JavaScript - Datatables ===&lt;br /&gt;
[[JavaScript - Datatables]]&lt;br /&gt;
&lt;br /&gt;
=== JavaScript - Silbentrennung / Hyphenation ===&lt;br /&gt;
https://github.com/mnater/hyphenator&lt;br /&gt;
&lt;br /&gt;
== JQuery Plugins ==&lt;br /&gt;
&lt;br /&gt;
[[JQuery Tools (flowplayer.org)]]&lt;br /&gt;
&lt;br /&gt;
[[jQuery.Scrolly]] (Parallax)&lt;br /&gt;
&lt;br /&gt;
== JavaScript - Snippets ==&lt;br /&gt;
=== Tipps, Tricks und Snippets ===&lt;br /&gt;
[[JavaScript - Snippets]]&lt;br /&gt;
&lt;br /&gt;
[[JavaScript - Probleme lösen]]&lt;br /&gt;
&lt;br /&gt;
== JavaScript - Events / Ereignisse ==&lt;br /&gt;
[[JavaScript - Event-Handler]]&lt;br /&gt;
&lt;br /&gt;
== JavaScript - Debugging ==&lt;br /&gt;
[[JavaScript - Probleme im IE]]&lt;/div&gt;</summary>
		<author><name>93.208.111.215</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=JavaScript_-_Snippets&amp;diff=22007</id>
		<title>JavaScript - Snippets</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=JavaScript_-_Snippets&amp;diff=22007"/>
		<updated>2017-02-28T18:20:40Z</updated>

		<summary type="html">&lt;p&gt;93.208.111.215: /* Scroll / Fixed Navbar */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Links ==&lt;br /&gt;
Siehe auch&lt;br /&gt;
&lt;br /&gt;
[[JavaScripts - Basics]]&lt;br /&gt;
&lt;br /&gt;
[[jQuery - Snippets]]&lt;br /&gt;
&lt;br /&gt;
== Sonderzeichen in Alert-Meldungen ==&lt;br /&gt;
&lt;br /&gt;
Oft sieht man im Web sehr hässliche alert-Meldungen , in denen die Umlaute nicht korrekt dargestellt sind. Das liegt auch daran, dass unterschiedliche Betriebssystem Zeichen unterschiedlich kodieren. Damit so etwas möglichst vermieden wird, sollte man solche Meldungen mit alert(unescape(&amp;quot;...&amp;quot;)) anzeigen.&lt;br /&gt;
&lt;br /&gt;
Beispiel: &lt;br /&gt;
 alert(unescape(&amp;quot;So was d%E4mliches%21&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
Zeichen	so verschlüsseln:&lt;br /&gt;
\	\\&lt;br /&gt;
&amp;quot;	\&amp;quot;&lt;br /&gt;
&amp;#039;	\&amp;#039;&lt;br /&gt;
Zeilenumbruch	\n&lt;br /&gt;
Wagenrücklauf	\r&lt;br /&gt;
(Den Unterschied zum Zeilenumbruch habe ich auch noch nicht begriffen.)&lt;br /&gt;
Tabulator	\t&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zeichen	so:&lt;br /&gt;
Ä	%C4&lt;br /&gt;
Ö	%D6&lt;br /&gt;
Ü	%DC&lt;br /&gt;
ä	%E4&lt;br /&gt;
ö	%F6&lt;br /&gt;
ü	%FC&lt;br /&gt;
ß	%DF&lt;br /&gt;
€	%u20AC&lt;br /&gt;
$	%24&lt;br /&gt;
%	%25&lt;br /&gt;
&lt;br /&gt;
Generier Tool:&lt;br /&gt;
http://www.salesianer.de/util/alert-umlaute.html&lt;br /&gt;
&lt;br /&gt;
== Teil einer Seite drucken ==&lt;br /&gt;
Old School JavaScript, sollte sich  aber relativ einfach auf jQuery übertragen lassen.&lt;br /&gt;
&lt;br /&gt;
Quelle: http://www.webstool.de/de/tipps_down_druck3.html Zugriff: 10/2011&lt;br /&gt;
&lt;br /&gt;
Mit einem einfachen JavaScript lässt sich mit relativ wenig Aufwand eine druckerfreundliche Version einer Webseite bei Bedarf erzeugen.&lt;br /&gt;
&lt;br /&gt;
Das JavaScript wird nachstehend vorgestellt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function ausgabe()&lt;br /&gt;
{&lt;br /&gt;
var ref = document.getElementById(&amp;quot;auswahl&amp;quot;);&lt;br /&gt;
var ausgabe;&lt;br /&gt;
// nächste Zeile öffnet ein Fenster der Größe 800 x 600 Pixel&lt;br /&gt;
ausgabe=window.open(&amp;quot;#&amp;quot;,&amp;quot;fenster&amp;quot;,&amp;quot;width=800,height=600,resizable=yes,menubar=yes,left=50,top=50&amp;quot;);&lt;br /&gt;
ausgabe.document.open();&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;html&amp;gt;\n&amp;lt;head&amp;gt;\n&amp;lt;title&amp;gt;Druckversion&amp;lt;/title&amp;gt;\n&amp;#039;);&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=iso-8859-1&amp;quot;&amp;gt;\n&amp;#039;);&lt;br /&gt;
// in der nächsten Zeile an das eigene Stylesheet anpassen&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;../css/design1.css&amp;quot;&amp;gt;\n&amp;lt;/head&amp;gt;\n&amp;#039;);&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;body&amp;gt;\n&amp;lt;h1 align=&amp;quot;center&amp;quot;&amp;gt;&amp;amp;copy; web s tool - Partner f&amp;amp;uuml;r Ihren Internetauftritt&amp;lt;/h1&amp;gt;\n&amp;#039;);&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;div&amp;gt;\n&amp;#039;);&lt;br /&gt;
// Ausgabe aller Inhalte mit der id = auswahl&lt;br /&gt;
while (ref!=null)&lt;br /&gt;
{&lt;br /&gt;
ausgabe.document.write(ref.innerHTML + &amp;#039;\n&amp;#039;);&lt;br /&gt;
ref = ref.nextSibling;&lt;br /&gt;
}&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;/div&amp;gt;\n&amp;lt;p align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;javascript:window.print()&amp;quot;&amp;gt;drucken&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;\n&amp;lt;/body&amp;gt;\n&amp;lt;/html&amp;gt;\n&amp;#039;);&lt;br /&gt;
ausgabe.document.close();&lt;br /&gt;
ausgabe.focus();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die externe Einbindung des JavaScripts erfolgt dabei z.B. im head-Bereich der Webseite über&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script language=&amp;quot;JavaScript&amp;quot; src=&amp;quot;../scripts/ausgabe4print.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Von entscheidender Bedeutung ist, dass auf der Seite das auszuwählende Objekt mit der id = &amp;quot;auswahl&amp;quot; (bitte bei Bedarf anpassen) versehen ist. Das auszuwählende Objekt kann dabei eine Tabelle oder ein div-Container sein.&lt;br /&gt;
&lt;br /&gt;
Der Aufruf erfolgt z.B. durch den Link &amp;lt;a href=&amp;quot;javascript:ausgabe();&amp;quot;&amp;gt; Druckversion&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fehler Behandlung ==&lt;br /&gt;
=== Prüfen ob ein Element existiert (normales JavaScript)===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function isElement(obj) {&lt;br /&gt;
  try {&lt;br /&gt;
    //Using W3 DOM2 (works for FF, Opera and Chrom)&lt;br /&gt;
    return obj instanceof HTMLElement;&lt;br /&gt;
  }&lt;br /&gt;
  catch(e){&lt;br /&gt;
    return (typeof obj===&amp;quot;object&amp;quot;) &amp;amp;&amp;amp;&lt;br /&gt;
      (obj.nodeType===1) &amp;amp;&amp;amp; (typeof obj.style === &amp;quot;object&amp;quot;) &amp;amp;&amp;amp;&lt;br /&gt;
      (typeof obj.ownerDocument ===&amp;quot;object&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Prüfen ob ein Element in einem Objekt-Literal existiert und nicht null ist ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var data = {&lt;br /&gt;
    &amp;quot;key1&amp;quot; : val,&lt;br /&gt;
    &amp;quot;key2&amp;quot; : val,&lt;br /&gt;
    &amp;quot;key3&amp;quot; : val&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if( &amp;quot;key2&amp;quot; in data &amp;amp;&amp;amp; data.key2 != null){&lt;br /&gt;
...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Eingaben Validieren ==&lt;br /&gt;
=== Handynummer validieren (normales JavaScript) ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function phone_is_valid(nr){&lt;br /&gt;
	var reg2 = /^([0-9]{4,6})+\/([0-9]{6,11})$/;&lt;br /&gt;
	return reg2.test(nr);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Datum validieren (normales JavaScript) ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function date_is_valid(myDate){&lt;br /&gt;
	var isValid = false;&lt;br /&gt;
	var today = new Date();&lt;br /&gt;
	if (!myDate) return false;&lt;br /&gt;
	myDate=myDate.toString();&lt;br /&gt;
	arrDate=myDate.split(&amp;quot;.&amp;quot;);&lt;br /&gt;
	if (arrDate.length!=3) return false;&lt;br /&gt;
	arrDate[0]=parseInt(arrDate[0],10);&lt;br /&gt;
	arrDate[1]=parseInt(arrDate[1],10)-1;&lt;br /&gt;
	if (arrDate[2].length==2) arrDate[2]=&amp;quot;20&amp;quot;+arrDate[2]&lt;br /&gt;
	var kontrolldatum=new Date(arrDate[2],arrDate[1],arrDate[0]);&lt;br /&gt;
	// Datum gültig ?&lt;br /&gt;
	if (kontrolldatum.getDate()==arrDate[0] &amp;amp;&amp;amp; kontrolldatum.getMonth()==arrDate[1] &amp;amp;&amp;amp; kontrolldatum.getFullYear()==arrDate[2])&lt;br /&gt;
	{&lt;br /&gt;
		// in der Zukunft&lt;br /&gt;
		if (kontrolldatum.getTime()-today.getTime()+(24*60*60*1000) &amp;gt; 0)&lt;br /&gt;
			return true; 		&lt;br /&gt;
	}&lt;br /&gt;
	return false;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Maus ==&lt;br /&gt;
[[JavaScript - Maus]]&lt;br /&gt;
== Timer ==&lt;br /&gt;
Quelle: http://blog.agrafix.net/2011/10/javascript-timers-mit-jquery/&lt;br /&gt;
&lt;br /&gt;
Benötigte Funktionen sind window.setTimeout und window.setInterval&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// funktion verzögert aufrufen&lt;br /&gt;
function machWas() {&lt;br /&gt;
   alert(&amp;#039;alert() mit 1000ms verzögerung!&amp;#039;);&lt;br /&gt;
}&lt;br /&gt;
window.setTimeout(machWas, 1000);&lt;br /&gt;
 &lt;br /&gt;
// funktion alle X Millisekunden aufruden&lt;br /&gt;
function machWasOft() {&lt;br /&gt;
   alert(&amp;#039;alle 1000ms ein alert()&amp;#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
window.setInterval(machWasOft, 1000);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Doch was ist, wenn ich jetzt einen solchen Timer ändern oder abbrechen möchte? Das ist eigentlich auch nicht schwer – die Funktionen setTimeout/setInterval geben ein Objekt zurück über das sie sich wieder beenden lassen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var x = 0;&lt;br /&gt;
function machWasAbbrechbarOft() {&lt;br /&gt;
    x += 1;&lt;br /&gt;
    if (x &amp;gt; 200) {&lt;br /&gt;
        window.clearInterval(running); // beende das &amp;quot;Interval&amp;quot; nach 201 Ausführungen&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
var running = window.setInterval(machWasAbbrechbarOft, 1000);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Timer mit jQuery ===&lt;br /&gt;
Für größere Projekte gibt es ein komfortableres jQuery Plugin&lt;br /&gt;
&lt;br /&gt;
Mit diesem Plugin geht das “Interval” setzen dann wie folgt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$(document).everyTime(1000, &amp;quot;machWasOftAbbrechbar&amp;quot;, function(i) { // alle 1000ms&lt;br /&gt;
  alert(&amp;#039;Hallo ich bin der &amp;#039; + i + &amp;#039;te Aufruf!&amp;#039;); // machWasOftAbbrechbar, hier die funktion die aufgerufen werden soll&lt;br /&gt;
}, 200); // 200 mal ausführen&lt;br /&gt;
Der zweite Parameter, machWasOftAbbrechbar, stellt hierbei ein sogenanntes “label” dar, über das man den gestarten Timer dann wieder abbrechen kann:&lt;br /&gt;
&lt;br /&gt;
$(document).stopTime(&amp;quot;machWasOftAbbrechbar&amp;quot;); // stoppe machWasOftAbbrechbar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Viel mehr gibt’s eigentlich nicht dazu zu sagen – die Dokumentation dazu findet man, genau wie das Plugin selbst, unter http://plugins.jquery.com/project/timers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== JavaScript - Objekte ==&lt;br /&gt;
[[JavaScript - Objektorientierte Programmierung]]&lt;br /&gt;
=== Objekte löschen ===&lt;br /&gt;
 for (prop in allOverlays) { if (allOverlays.hasOwnProperty(prop)) { delete allOverlays[prop]; } } //ie 6 gc problems&lt;br /&gt;
 //allOverlays = {};&lt;br /&gt;
&lt;br /&gt;
== JavaScript - Strings ==&lt;br /&gt;
[[JavaScript - Strings]]&lt;br /&gt;
&lt;br /&gt;
== JavaScript - HTML5 Audio ==&lt;br /&gt;
[[JavaScript - HTML5 Audio]]&lt;br /&gt;
&lt;br /&gt;
== JavaScript - Verschiedenes ==&lt;br /&gt;
=== JavaScript Animation ===&lt;br /&gt;
Siehe [[Animation im Web]]&lt;br /&gt;
=== Sortieren ===&lt;br /&gt;
http://www.javascriptkit.com/javatutors/arraysort.shtml&lt;br /&gt;
==== URL Parameter auslesen ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function getUrlVars()&lt;br /&gt;
/* get GET Vars from URl */&lt;br /&gt;
{&lt;br /&gt;
    var vars = [], hash;&lt;br /&gt;
    var hashes = window.location.href.slice(window.location.href.indexOf(&amp;#039;?&amp;#039;) + 1).split(&amp;#039;&amp;amp;&amp;#039;);&lt;br /&gt;
    for(var i = 0; i &amp;lt; hashes.length; i++)&lt;br /&gt;
    {&lt;br /&gt;
        hash = hashes[i].split(&amp;#039;=&amp;#039;);&lt;br /&gt;
        vars.push(hash[0]);&lt;br /&gt;
        vars[hash[0]] = hash[1];&lt;br /&gt;
    }&lt;br /&gt;
    return vars;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Anchor Teil bei Links extrahieren ===&lt;br /&gt;
Manchmal möchte man nur den Anchor Teil mit #meinAnchor&lt;br /&gt;
 var url = &amp;quot;www.aaa.com/task1/1.3.html#a_1&amp;quot;;&lt;br /&gt;
 var hash = url.substring(url.indexOf(&amp;quot;#&amp;quot;)+1);&lt;br /&gt;
=== Scrolling ===&lt;br /&gt;
==== Scroll / Fixed Navbar ====&lt;br /&gt;
jQuery&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
  var stickyNavTop = $(&amp;#039;.nav&amp;#039;).offset().top;&lt;br /&gt;
  var stickyNav = function(){&lt;br /&gt;
    var scrollTop = $(window).scrollTop();  &lt;br /&gt;
    if (scrollTop &amp;gt; stickyNavTop) { &lt;br /&gt;
      $(&amp;#039;.nav&amp;#039;).addClass(&amp;#039;sticky&amp;#039;);&lt;br /&gt;
    } else {&lt;br /&gt;
      $(&amp;#039;.nav&amp;#039;).removeClass(&amp;#039;sticky&amp;#039;); &lt;br /&gt;
    }&lt;br /&gt;
  };&lt;br /&gt;
  stickyNav();&lt;br /&gt;
  $(window).scroll(function() {&lt;br /&gt;
    stickyNav();&lt;br /&gt;
  });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CSS - wichtig vor allem fixed.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
.sticky {&lt;br /&gt;
  position: fixed;&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  left: 0;&lt;br /&gt;
  top: 0;&lt;br /&gt;
  z-index: 100;&lt;br /&gt;
  border-top: 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Smooth Scrolling für Anchor Tags oder toTop Links ====&lt;br /&gt;
Beispiel 1 (jQuery) &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$(&amp;#039;a[href*=#]:not([href=#])&amp;#039;).click(function() {&lt;br /&gt;
    if (location.pathname.replace(/^\//,&amp;#039;&amp;#039;) == this.pathname.replace(/^\//,&amp;#039;&amp;#039;) &lt;br /&gt;
        || location.hostname == this.hostname) {&lt;br /&gt;
&lt;br /&gt;
        var target = $(this.hash);&lt;br /&gt;
        target = target.length ? target : $(&amp;#039;[name=&amp;#039; + this.hash.slice(1) +&amp;#039;]&amp;#039;);&lt;br /&gt;
           if (target.length) {&lt;br /&gt;
             $(&amp;#039;html,body&amp;#039;).animate({&lt;br /&gt;
                 scrollTop: target.offset().top&lt;br /&gt;
            }, 1000);&lt;br /&gt;
            return false;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beispiel 2 (jQuery) mit Offset&lt;br /&gt;
&lt;br /&gt;
http://1stwebmagazine.com/jquery-scroll-to-anchor-point&lt;/div&gt;</summary>
		<author><name>93.208.111.215</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=JavaScript_-_Snippets&amp;diff=22006</id>
		<title>JavaScript - Snippets</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=JavaScript_-_Snippets&amp;diff=22006"/>
		<updated>2017-02-28T18:20:05Z</updated>

		<summary type="html">&lt;p&gt;93.208.111.215: /* Scroll / Fixed Navbar */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Links ==&lt;br /&gt;
Siehe auch&lt;br /&gt;
&lt;br /&gt;
[[JavaScripts - Basics]]&lt;br /&gt;
&lt;br /&gt;
[[jQuery - Snippets]]&lt;br /&gt;
&lt;br /&gt;
== Sonderzeichen in Alert-Meldungen ==&lt;br /&gt;
&lt;br /&gt;
Oft sieht man im Web sehr hässliche alert-Meldungen , in denen die Umlaute nicht korrekt dargestellt sind. Das liegt auch daran, dass unterschiedliche Betriebssystem Zeichen unterschiedlich kodieren. Damit so etwas möglichst vermieden wird, sollte man solche Meldungen mit alert(unescape(&amp;quot;...&amp;quot;)) anzeigen.&lt;br /&gt;
&lt;br /&gt;
Beispiel: &lt;br /&gt;
 alert(unescape(&amp;quot;So was d%E4mliches%21&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
Zeichen	so verschlüsseln:&lt;br /&gt;
\	\\&lt;br /&gt;
&amp;quot;	\&amp;quot;&lt;br /&gt;
&amp;#039;	\&amp;#039;&lt;br /&gt;
Zeilenumbruch	\n&lt;br /&gt;
Wagenrücklauf	\r&lt;br /&gt;
(Den Unterschied zum Zeilenumbruch habe ich auch noch nicht begriffen.)&lt;br /&gt;
Tabulator	\t&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zeichen	so:&lt;br /&gt;
Ä	%C4&lt;br /&gt;
Ö	%D6&lt;br /&gt;
Ü	%DC&lt;br /&gt;
ä	%E4&lt;br /&gt;
ö	%F6&lt;br /&gt;
ü	%FC&lt;br /&gt;
ß	%DF&lt;br /&gt;
€	%u20AC&lt;br /&gt;
$	%24&lt;br /&gt;
%	%25&lt;br /&gt;
&lt;br /&gt;
Generier Tool:&lt;br /&gt;
http://www.salesianer.de/util/alert-umlaute.html&lt;br /&gt;
&lt;br /&gt;
== Teil einer Seite drucken ==&lt;br /&gt;
Old School JavaScript, sollte sich  aber relativ einfach auf jQuery übertragen lassen.&lt;br /&gt;
&lt;br /&gt;
Quelle: http://www.webstool.de/de/tipps_down_druck3.html Zugriff: 10/2011&lt;br /&gt;
&lt;br /&gt;
Mit einem einfachen JavaScript lässt sich mit relativ wenig Aufwand eine druckerfreundliche Version einer Webseite bei Bedarf erzeugen.&lt;br /&gt;
&lt;br /&gt;
Das JavaScript wird nachstehend vorgestellt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function ausgabe()&lt;br /&gt;
{&lt;br /&gt;
var ref = document.getElementById(&amp;quot;auswahl&amp;quot;);&lt;br /&gt;
var ausgabe;&lt;br /&gt;
// nächste Zeile öffnet ein Fenster der Größe 800 x 600 Pixel&lt;br /&gt;
ausgabe=window.open(&amp;quot;#&amp;quot;,&amp;quot;fenster&amp;quot;,&amp;quot;width=800,height=600,resizable=yes,menubar=yes,left=50,top=50&amp;quot;);&lt;br /&gt;
ausgabe.document.open();&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;html&amp;gt;\n&amp;lt;head&amp;gt;\n&amp;lt;title&amp;gt;Druckversion&amp;lt;/title&amp;gt;\n&amp;#039;);&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=iso-8859-1&amp;quot;&amp;gt;\n&amp;#039;);&lt;br /&gt;
// in der nächsten Zeile an das eigene Stylesheet anpassen&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;../css/design1.css&amp;quot;&amp;gt;\n&amp;lt;/head&amp;gt;\n&amp;#039;);&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;body&amp;gt;\n&amp;lt;h1 align=&amp;quot;center&amp;quot;&amp;gt;&amp;amp;copy; web s tool - Partner f&amp;amp;uuml;r Ihren Internetauftritt&amp;lt;/h1&amp;gt;\n&amp;#039;);&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;div&amp;gt;\n&amp;#039;);&lt;br /&gt;
// Ausgabe aller Inhalte mit der id = auswahl&lt;br /&gt;
while (ref!=null)&lt;br /&gt;
{&lt;br /&gt;
ausgabe.document.write(ref.innerHTML + &amp;#039;\n&amp;#039;);&lt;br /&gt;
ref = ref.nextSibling;&lt;br /&gt;
}&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;/div&amp;gt;\n&amp;lt;p align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;javascript:window.print()&amp;quot;&amp;gt;drucken&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;\n&amp;lt;/body&amp;gt;\n&amp;lt;/html&amp;gt;\n&amp;#039;);&lt;br /&gt;
ausgabe.document.close();&lt;br /&gt;
ausgabe.focus();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die externe Einbindung des JavaScripts erfolgt dabei z.B. im head-Bereich der Webseite über&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script language=&amp;quot;JavaScript&amp;quot; src=&amp;quot;../scripts/ausgabe4print.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Von entscheidender Bedeutung ist, dass auf der Seite das auszuwählende Objekt mit der id = &amp;quot;auswahl&amp;quot; (bitte bei Bedarf anpassen) versehen ist. Das auszuwählende Objekt kann dabei eine Tabelle oder ein div-Container sein.&lt;br /&gt;
&lt;br /&gt;
Der Aufruf erfolgt z.B. durch den Link &amp;lt;a href=&amp;quot;javascript:ausgabe();&amp;quot;&amp;gt; Druckversion&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fehler Behandlung ==&lt;br /&gt;
=== Prüfen ob ein Element existiert (normales JavaScript)===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function isElement(obj) {&lt;br /&gt;
  try {&lt;br /&gt;
    //Using W3 DOM2 (works for FF, Opera and Chrom)&lt;br /&gt;
    return obj instanceof HTMLElement;&lt;br /&gt;
  }&lt;br /&gt;
  catch(e){&lt;br /&gt;
    return (typeof obj===&amp;quot;object&amp;quot;) &amp;amp;&amp;amp;&lt;br /&gt;
      (obj.nodeType===1) &amp;amp;&amp;amp; (typeof obj.style === &amp;quot;object&amp;quot;) &amp;amp;&amp;amp;&lt;br /&gt;
      (typeof obj.ownerDocument ===&amp;quot;object&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Prüfen ob ein Element in einem Objekt-Literal existiert und nicht null ist ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var data = {&lt;br /&gt;
    &amp;quot;key1&amp;quot; : val,&lt;br /&gt;
    &amp;quot;key2&amp;quot; : val,&lt;br /&gt;
    &amp;quot;key3&amp;quot; : val&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if( &amp;quot;key2&amp;quot; in data &amp;amp;&amp;amp; data.key2 != null){&lt;br /&gt;
...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Eingaben Validieren ==&lt;br /&gt;
=== Handynummer validieren (normales JavaScript) ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function phone_is_valid(nr){&lt;br /&gt;
	var reg2 = /^([0-9]{4,6})+\/([0-9]{6,11})$/;&lt;br /&gt;
	return reg2.test(nr);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Datum validieren (normales JavaScript) ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function date_is_valid(myDate){&lt;br /&gt;
	var isValid = false;&lt;br /&gt;
	var today = new Date();&lt;br /&gt;
	if (!myDate) return false;&lt;br /&gt;
	myDate=myDate.toString();&lt;br /&gt;
	arrDate=myDate.split(&amp;quot;.&amp;quot;);&lt;br /&gt;
	if (arrDate.length!=3) return false;&lt;br /&gt;
	arrDate[0]=parseInt(arrDate[0],10);&lt;br /&gt;
	arrDate[1]=parseInt(arrDate[1],10)-1;&lt;br /&gt;
	if (arrDate[2].length==2) arrDate[2]=&amp;quot;20&amp;quot;+arrDate[2]&lt;br /&gt;
	var kontrolldatum=new Date(arrDate[2],arrDate[1],arrDate[0]);&lt;br /&gt;
	// Datum gültig ?&lt;br /&gt;
	if (kontrolldatum.getDate()==arrDate[0] &amp;amp;&amp;amp; kontrolldatum.getMonth()==arrDate[1] &amp;amp;&amp;amp; kontrolldatum.getFullYear()==arrDate[2])&lt;br /&gt;
	{&lt;br /&gt;
		// in der Zukunft&lt;br /&gt;
		if (kontrolldatum.getTime()-today.getTime()+(24*60*60*1000) &amp;gt; 0)&lt;br /&gt;
			return true; 		&lt;br /&gt;
	}&lt;br /&gt;
	return false;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Maus ==&lt;br /&gt;
[[JavaScript - Maus]]&lt;br /&gt;
== Timer ==&lt;br /&gt;
Quelle: http://blog.agrafix.net/2011/10/javascript-timers-mit-jquery/&lt;br /&gt;
&lt;br /&gt;
Benötigte Funktionen sind window.setTimeout und window.setInterval&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// funktion verzögert aufrufen&lt;br /&gt;
function machWas() {&lt;br /&gt;
   alert(&amp;#039;alert() mit 1000ms verzögerung!&amp;#039;);&lt;br /&gt;
}&lt;br /&gt;
window.setTimeout(machWas, 1000);&lt;br /&gt;
 &lt;br /&gt;
// funktion alle X Millisekunden aufruden&lt;br /&gt;
function machWasOft() {&lt;br /&gt;
   alert(&amp;#039;alle 1000ms ein alert()&amp;#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
window.setInterval(machWasOft, 1000);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Doch was ist, wenn ich jetzt einen solchen Timer ändern oder abbrechen möchte? Das ist eigentlich auch nicht schwer – die Funktionen setTimeout/setInterval geben ein Objekt zurück über das sie sich wieder beenden lassen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var x = 0;&lt;br /&gt;
function machWasAbbrechbarOft() {&lt;br /&gt;
    x += 1;&lt;br /&gt;
    if (x &amp;gt; 200) {&lt;br /&gt;
        window.clearInterval(running); // beende das &amp;quot;Interval&amp;quot; nach 201 Ausführungen&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
var running = window.setInterval(machWasAbbrechbarOft, 1000);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Timer mit jQuery ===&lt;br /&gt;
Für größere Projekte gibt es ein komfortableres jQuery Plugin&lt;br /&gt;
&lt;br /&gt;
Mit diesem Plugin geht das “Interval” setzen dann wie folgt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$(document).everyTime(1000, &amp;quot;machWasOftAbbrechbar&amp;quot;, function(i) { // alle 1000ms&lt;br /&gt;
  alert(&amp;#039;Hallo ich bin der &amp;#039; + i + &amp;#039;te Aufruf!&amp;#039;); // machWasOftAbbrechbar, hier die funktion die aufgerufen werden soll&lt;br /&gt;
}, 200); // 200 mal ausführen&lt;br /&gt;
Der zweite Parameter, machWasOftAbbrechbar, stellt hierbei ein sogenanntes “label” dar, über das man den gestarten Timer dann wieder abbrechen kann:&lt;br /&gt;
&lt;br /&gt;
$(document).stopTime(&amp;quot;machWasOftAbbrechbar&amp;quot;); // stoppe machWasOftAbbrechbar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Viel mehr gibt’s eigentlich nicht dazu zu sagen – die Dokumentation dazu findet man, genau wie das Plugin selbst, unter http://plugins.jquery.com/project/timers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== JavaScript - Objekte ==&lt;br /&gt;
[[JavaScript - Objektorientierte Programmierung]]&lt;br /&gt;
=== Objekte löschen ===&lt;br /&gt;
 for (prop in allOverlays) { if (allOverlays.hasOwnProperty(prop)) { delete allOverlays[prop]; } } //ie 6 gc problems&lt;br /&gt;
 //allOverlays = {};&lt;br /&gt;
&lt;br /&gt;
== JavaScript - Strings ==&lt;br /&gt;
[[JavaScript - Strings]]&lt;br /&gt;
&lt;br /&gt;
== JavaScript - HTML5 Audio ==&lt;br /&gt;
[[JavaScript - HTML5 Audio]]&lt;br /&gt;
&lt;br /&gt;
== JavaScript - Verschiedenes ==&lt;br /&gt;
=== JavaScript Animation ===&lt;br /&gt;
Siehe [[Animation im Web]]&lt;br /&gt;
=== Sortieren ===&lt;br /&gt;
http://www.javascriptkit.com/javatutors/arraysort.shtml&lt;br /&gt;
==== URL Parameter auslesen ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function getUrlVars()&lt;br /&gt;
/* get GET Vars from URl */&lt;br /&gt;
{&lt;br /&gt;
    var vars = [], hash;&lt;br /&gt;
    var hashes = window.location.href.slice(window.location.href.indexOf(&amp;#039;?&amp;#039;) + 1).split(&amp;#039;&amp;amp;&amp;#039;);&lt;br /&gt;
    for(var i = 0; i &amp;lt; hashes.length; i++)&lt;br /&gt;
    {&lt;br /&gt;
        hash = hashes[i].split(&amp;#039;=&amp;#039;);&lt;br /&gt;
        vars.push(hash[0]);&lt;br /&gt;
        vars[hash[0]] = hash[1];&lt;br /&gt;
    }&lt;br /&gt;
    return vars;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Anchor Teil bei Links extrahieren ===&lt;br /&gt;
Manchmal möchte man nur den Anchor Teil mit #meinAnchor&lt;br /&gt;
 var url = &amp;quot;www.aaa.com/task1/1.3.html#a_1&amp;quot;;&lt;br /&gt;
 var hash = url.substring(url.indexOf(&amp;quot;#&amp;quot;)+1);&lt;br /&gt;
=== Scrolling ===&lt;br /&gt;
==== Scroll / Fixed Navbar ====&lt;br /&gt;
jQuery&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
  var stickyNavTop = $(&amp;#039;.nav&amp;#039;).offset().top;&lt;br /&gt;
  var stickyNav = function(){&lt;br /&gt;
    var scrollTop = $(window).scrollTop();  &lt;br /&gt;
    if (scrollTop &amp;gt; stickyNavTop) { &lt;br /&gt;
      $(&amp;#039;.nav&amp;#039;).addClass(&amp;#039;sticky&amp;#039;);&lt;br /&gt;
    } else {&lt;br /&gt;
      $(&amp;#039;.nav&amp;#039;).removeClass(&amp;#039;sticky&amp;#039;); &lt;br /&gt;
    }&lt;br /&gt;
  };&lt;br /&gt;
  stickyNav();&lt;br /&gt;
  $(window).scroll(function() {&lt;br /&gt;
    stickyNav();&lt;br /&gt;
  });&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/script&amp;gt; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CSS - wichtig vor allem fixed.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
.sticky {&lt;br /&gt;
  position: fixed;&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  left: 0;&lt;br /&gt;
  top: 0;&lt;br /&gt;
  z-index: 100;&lt;br /&gt;
  border-top: 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Smooth Scrolling für Anchor Tags oder toTop Links ====&lt;br /&gt;
Beispiel 1 (jQuery) &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$(&amp;#039;a[href*=#]:not([href=#])&amp;#039;).click(function() {&lt;br /&gt;
    if (location.pathname.replace(/^\//,&amp;#039;&amp;#039;) == this.pathname.replace(/^\//,&amp;#039;&amp;#039;) &lt;br /&gt;
        || location.hostname == this.hostname) {&lt;br /&gt;
&lt;br /&gt;
        var target = $(this.hash);&lt;br /&gt;
        target = target.length ? target : $(&amp;#039;[name=&amp;#039; + this.hash.slice(1) +&amp;#039;]&amp;#039;);&lt;br /&gt;
           if (target.length) {&lt;br /&gt;
             $(&amp;#039;html,body&amp;#039;).animate({&lt;br /&gt;
                 scrollTop: target.offset().top&lt;br /&gt;
            }, 1000);&lt;br /&gt;
            return false;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beispiel 2 (jQuery) mit Offset&lt;br /&gt;
&lt;br /&gt;
http://1stwebmagazine.com/jquery-scroll-to-anchor-point&lt;/div&gt;</summary>
		<author><name>93.208.111.215</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=JavaScript_-_Snippets&amp;diff=22005</id>
		<title>JavaScript - Snippets</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=JavaScript_-_Snippets&amp;diff=22005"/>
		<updated>2017-02-28T17:45:57Z</updated>

		<summary type="html">&lt;p&gt;93.208.111.215: /* Scroll / Fixed Navbar */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Links ==&lt;br /&gt;
Siehe auch&lt;br /&gt;
&lt;br /&gt;
[[JavaScripts - Basics]]&lt;br /&gt;
&lt;br /&gt;
[[jQuery - Snippets]]&lt;br /&gt;
&lt;br /&gt;
== Sonderzeichen in Alert-Meldungen ==&lt;br /&gt;
&lt;br /&gt;
Oft sieht man im Web sehr hässliche alert-Meldungen , in denen die Umlaute nicht korrekt dargestellt sind. Das liegt auch daran, dass unterschiedliche Betriebssystem Zeichen unterschiedlich kodieren. Damit so etwas möglichst vermieden wird, sollte man solche Meldungen mit alert(unescape(&amp;quot;...&amp;quot;)) anzeigen.&lt;br /&gt;
&lt;br /&gt;
Beispiel: &lt;br /&gt;
 alert(unescape(&amp;quot;So was d%E4mliches%21&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
Zeichen	so verschlüsseln:&lt;br /&gt;
\	\\&lt;br /&gt;
&amp;quot;	\&amp;quot;&lt;br /&gt;
&amp;#039;	\&amp;#039;&lt;br /&gt;
Zeilenumbruch	\n&lt;br /&gt;
Wagenrücklauf	\r&lt;br /&gt;
(Den Unterschied zum Zeilenumbruch habe ich auch noch nicht begriffen.)&lt;br /&gt;
Tabulator	\t&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zeichen	so:&lt;br /&gt;
Ä	%C4&lt;br /&gt;
Ö	%D6&lt;br /&gt;
Ü	%DC&lt;br /&gt;
ä	%E4&lt;br /&gt;
ö	%F6&lt;br /&gt;
ü	%FC&lt;br /&gt;
ß	%DF&lt;br /&gt;
€	%u20AC&lt;br /&gt;
$	%24&lt;br /&gt;
%	%25&lt;br /&gt;
&lt;br /&gt;
Generier Tool:&lt;br /&gt;
http://www.salesianer.de/util/alert-umlaute.html&lt;br /&gt;
&lt;br /&gt;
== Teil einer Seite drucken ==&lt;br /&gt;
Old School JavaScript, sollte sich  aber relativ einfach auf jQuery übertragen lassen.&lt;br /&gt;
&lt;br /&gt;
Quelle: http://www.webstool.de/de/tipps_down_druck3.html Zugriff: 10/2011&lt;br /&gt;
&lt;br /&gt;
Mit einem einfachen JavaScript lässt sich mit relativ wenig Aufwand eine druckerfreundliche Version einer Webseite bei Bedarf erzeugen.&lt;br /&gt;
&lt;br /&gt;
Das JavaScript wird nachstehend vorgestellt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function ausgabe()&lt;br /&gt;
{&lt;br /&gt;
var ref = document.getElementById(&amp;quot;auswahl&amp;quot;);&lt;br /&gt;
var ausgabe;&lt;br /&gt;
// nächste Zeile öffnet ein Fenster der Größe 800 x 600 Pixel&lt;br /&gt;
ausgabe=window.open(&amp;quot;#&amp;quot;,&amp;quot;fenster&amp;quot;,&amp;quot;width=800,height=600,resizable=yes,menubar=yes,left=50,top=50&amp;quot;);&lt;br /&gt;
ausgabe.document.open();&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;html&amp;gt;\n&amp;lt;head&amp;gt;\n&amp;lt;title&amp;gt;Druckversion&amp;lt;/title&amp;gt;\n&amp;#039;);&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=iso-8859-1&amp;quot;&amp;gt;\n&amp;#039;);&lt;br /&gt;
// in der nächsten Zeile an das eigene Stylesheet anpassen&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;../css/design1.css&amp;quot;&amp;gt;\n&amp;lt;/head&amp;gt;\n&amp;#039;);&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;body&amp;gt;\n&amp;lt;h1 align=&amp;quot;center&amp;quot;&amp;gt;&amp;amp;copy; web s tool - Partner f&amp;amp;uuml;r Ihren Internetauftritt&amp;lt;/h1&amp;gt;\n&amp;#039;);&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;div&amp;gt;\n&amp;#039;);&lt;br /&gt;
// Ausgabe aller Inhalte mit der id = auswahl&lt;br /&gt;
while (ref!=null)&lt;br /&gt;
{&lt;br /&gt;
ausgabe.document.write(ref.innerHTML + &amp;#039;\n&amp;#039;);&lt;br /&gt;
ref = ref.nextSibling;&lt;br /&gt;
}&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;/div&amp;gt;\n&amp;lt;p align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;javascript:window.print()&amp;quot;&amp;gt;drucken&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;\n&amp;lt;/body&amp;gt;\n&amp;lt;/html&amp;gt;\n&amp;#039;);&lt;br /&gt;
ausgabe.document.close();&lt;br /&gt;
ausgabe.focus();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die externe Einbindung des JavaScripts erfolgt dabei z.B. im head-Bereich der Webseite über&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script language=&amp;quot;JavaScript&amp;quot; src=&amp;quot;../scripts/ausgabe4print.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Von entscheidender Bedeutung ist, dass auf der Seite das auszuwählende Objekt mit der id = &amp;quot;auswahl&amp;quot; (bitte bei Bedarf anpassen) versehen ist. Das auszuwählende Objekt kann dabei eine Tabelle oder ein div-Container sein.&lt;br /&gt;
&lt;br /&gt;
Der Aufruf erfolgt z.B. durch den Link &amp;lt;a href=&amp;quot;javascript:ausgabe();&amp;quot;&amp;gt; Druckversion&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fehler Behandlung ==&lt;br /&gt;
=== Prüfen ob ein Element existiert (normales JavaScript)===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function isElement(obj) {&lt;br /&gt;
  try {&lt;br /&gt;
    //Using W3 DOM2 (works for FF, Opera and Chrom)&lt;br /&gt;
    return obj instanceof HTMLElement;&lt;br /&gt;
  }&lt;br /&gt;
  catch(e){&lt;br /&gt;
    return (typeof obj===&amp;quot;object&amp;quot;) &amp;amp;&amp;amp;&lt;br /&gt;
      (obj.nodeType===1) &amp;amp;&amp;amp; (typeof obj.style === &amp;quot;object&amp;quot;) &amp;amp;&amp;amp;&lt;br /&gt;
      (typeof obj.ownerDocument ===&amp;quot;object&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Prüfen ob ein Element in einem Objekt-Literal existiert und nicht null ist ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var data = {&lt;br /&gt;
    &amp;quot;key1&amp;quot; : val,&lt;br /&gt;
    &amp;quot;key2&amp;quot; : val,&lt;br /&gt;
    &amp;quot;key3&amp;quot; : val&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if( &amp;quot;key2&amp;quot; in data &amp;amp;&amp;amp; data.key2 != null){&lt;br /&gt;
...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Eingaben Validieren ==&lt;br /&gt;
=== Handynummer validieren (normales JavaScript) ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function phone_is_valid(nr){&lt;br /&gt;
	var reg2 = /^([0-9]{4,6})+\/([0-9]{6,11})$/;&lt;br /&gt;
	return reg2.test(nr);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Datum validieren (normales JavaScript) ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function date_is_valid(myDate){&lt;br /&gt;
	var isValid = false;&lt;br /&gt;
	var today = new Date();&lt;br /&gt;
	if (!myDate) return false;&lt;br /&gt;
	myDate=myDate.toString();&lt;br /&gt;
	arrDate=myDate.split(&amp;quot;.&amp;quot;);&lt;br /&gt;
	if (arrDate.length!=3) return false;&lt;br /&gt;
	arrDate[0]=parseInt(arrDate[0],10);&lt;br /&gt;
	arrDate[1]=parseInt(arrDate[1],10)-1;&lt;br /&gt;
	if (arrDate[2].length==2) arrDate[2]=&amp;quot;20&amp;quot;+arrDate[2]&lt;br /&gt;
	var kontrolldatum=new Date(arrDate[2],arrDate[1],arrDate[0]);&lt;br /&gt;
	// Datum gültig ?&lt;br /&gt;
	if (kontrolldatum.getDate()==arrDate[0] &amp;amp;&amp;amp; kontrolldatum.getMonth()==arrDate[1] &amp;amp;&amp;amp; kontrolldatum.getFullYear()==arrDate[2])&lt;br /&gt;
	{&lt;br /&gt;
		// in der Zukunft&lt;br /&gt;
		if (kontrolldatum.getTime()-today.getTime()+(24*60*60*1000) &amp;gt; 0)&lt;br /&gt;
			return true; 		&lt;br /&gt;
	}&lt;br /&gt;
	return false;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Maus ==&lt;br /&gt;
[[JavaScript - Maus]]&lt;br /&gt;
== Timer ==&lt;br /&gt;
Quelle: http://blog.agrafix.net/2011/10/javascript-timers-mit-jquery/&lt;br /&gt;
&lt;br /&gt;
Benötigte Funktionen sind window.setTimeout und window.setInterval&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// funktion verzögert aufrufen&lt;br /&gt;
function machWas() {&lt;br /&gt;
   alert(&amp;#039;alert() mit 1000ms verzögerung!&amp;#039;);&lt;br /&gt;
}&lt;br /&gt;
window.setTimeout(machWas, 1000);&lt;br /&gt;
 &lt;br /&gt;
// funktion alle X Millisekunden aufruden&lt;br /&gt;
function machWasOft() {&lt;br /&gt;
   alert(&amp;#039;alle 1000ms ein alert()&amp;#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
window.setInterval(machWasOft, 1000);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Doch was ist, wenn ich jetzt einen solchen Timer ändern oder abbrechen möchte? Das ist eigentlich auch nicht schwer – die Funktionen setTimeout/setInterval geben ein Objekt zurück über das sie sich wieder beenden lassen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var x = 0;&lt;br /&gt;
function machWasAbbrechbarOft() {&lt;br /&gt;
    x += 1;&lt;br /&gt;
    if (x &amp;gt; 200) {&lt;br /&gt;
        window.clearInterval(running); // beende das &amp;quot;Interval&amp;quot; nach 201 Ausführungen&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
var running = window.setInterval(machWasAbbrechbarOft, 1000);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Timer mit jQuery ===&lt;br /&gt;
Für größere Projekte gibt es ein komfortableres jQuery Plugin&lt;br /&gt;
&lt;br /&gt;
Mit diesem Plugin geht das “Interval” setzen dann wie folgt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$(document).everyTime(1000, &amp;quot;machWasOftAbbrechbar&amp;quot;, function(i) { // alle 1000ms&lt;br /&gt;
  alert(&amp;#039;Hallo ich bin der &amp;#039; + i + &amp;#039;te Aufruf!&amp;#039;); // machWasOftAbbrechbar, hier die funktion die aufgerufen werden soll&lt;br /&gt;
}, 200); // 200 mal ausführen&lt;br /&gt;
Der zweite Parameter, machWasOftAbbrechbar, stellt hierbei ein sogenanntes “label” dar, über das man den gestarten Timer dann wieder abbrechen kann:&lt;br /&gt;
&lt;br /&gt;
$(document).stopTime(&amp;quot;machWasOftAbbrechbar&amp;quot;); // stoppe machWasOftAbbrechbar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Viel mehr gibt’s eigentlich nicht dazu zu sagen – die Dokumentation dazu findet man, genau wie das Plugin selbst, unter http://plugins.jquery.com/project/timers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== JavaScript - Objekte ==&lt;br /&gt;
[[JavaScript - Objektorientierte Programmierung]]&lt;br /&gt;
=== Objekte löschen ===&lt;br /&gt;
 for (prop in allOverlays) { if (allOverlays.hasOwnProperty(prop)) { delete allOverlays[prop]; } } //ie 6 gc problems&lt;br /&gt;
 //allOverlays = {};&lt;br /&gt;
&lt;br /&gt;
== JavaScript - Strings ==&lt;br /&gt;
[[JavaScript - Strings]]&lt;br /&gt;
&lt;br /&gt;
== JavaScript - HTML5 Audio ==&lt;br /&gt;
[[JavaScript - HTML5 Audio]]&lt;br /&gt;
&lt;br /&gt;
== JavaScript - Verschiedenes ==&lt;br /&gt;
=== JavaScript Animation ===&lt;br /&gt;
Siehe [[Animation im Web]]&lt;br /&gt;
=== Sortieren ===&lt;br /&gt;
http://www.javascriptkit.com/javatutors/arraysort.shtml&lt;br /&gt;
==== URL Parameter auslesen ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function getUrlVars()&lt;br /&gt;
/* get GET Vars from URl */&lt;br /&gt;
{&lt;br /&gt;
    var vars = [], hash;&lt;br /&gt;
    var hashes = window.location.href.slice(window.location.href.indexOf(&amp;#039;?&amp;#039;) + 1).split(&amp;#039;&amp;amp;&amp;#039;);&lt;br /&gt;
    for(var i = 0; i &amp;lt; hashes.length; i++)&lt;br /&gt;
    {&lt;br /&gt;
        hash = hashes[i].split(&amp;#039;=&amp;#039;);&lt;br /&gt;
        vars.push(hash[0]);&lt;br /&gt;
        vars[hash[0]] = hash[1];&lt;br /&gt;
    }&lt;br /&gt;
    return vars;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Anchor Teil bei Links extrahieren ===&lt;br /&gt;
Manchmal möchte man nur den Anchor Teil mit #meinAnchor&lt;br /&gt;
 var url = &amp;quot;www.aaa.com/task1/1.3.html#a_1&amp;quot;;&lt;br /&gt;
 var hash = url.substring(url.indexOf(&amp;quot;#&amp;quot;)+1);&lt;br /&gt;
=== Scrolling ===&lt;br /&gt;
==== Scroll / Fixed Navbar ====&lt;br /&gt;
jQuery&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
  jQuery(document).ready(function($) {&lt;br /&gt;
&lt;br /&gt;
    function sticky()&lt;br /&gt;
    {&lt;br /&gt;
        var window_top=$(window).scrollTop();&lt;br /&gt;
        var top_position=$(&amp;#039;body&amp;#039;).offset().top;&lt;br /&gt;
        var element_to_stick=$(&amp;#039;.sticky&amp;#039;);&lt;br /&gt;
        &lt;br /&gt;
        if (window_top &amp;gt; top_position) {&lt;br /&gt;
            element_to_stick.addClass(&amp;#039;sticked&amp;#039;);&lt;br /&gt;
        } else {&lt;br /&gt;
            element_to_stick.removeClass(&amp;#039;sticked&amp;#039;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    $(window).scroll(sticky);&lt;br /&gt;
    sticky();&lt;br /&gt;
    &lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/script&amp;gt; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
CSS - wichtig vor allem fixed.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
div.sticked {&lt;br /&gt;
    top: 0;&lt;br /&gt;
    position: fixed;&lt;br /&gt;
    width: 100%&lt;br /&gt;
    z-index: 1000;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Smooth Scrolling für Anchor Tags oder toTop Links ====&lt;br /&gt;
Beispiel 1 (jQuery) &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$(&amp;#039;a[href*=#]:not([href=#])&amp;#039;).click(function() {&lt;br /&gt;
    if (location.pathname.replace(/^\//,&amp;#039;&amp;#039;) == this.pathname.replace(/^\//,&amp;#039;&amp;#039;) &lt;br /&gt;
        || location.hostname == this.hostname) {&lt;br /&gt;
&lt;br /&gt;
        var target = $(this.hash);&lt;br /&gt;
        target = target.length ? target : $(&amp;#039;[name=&amp;#039; + this.hash.slice(1) +&amp;#039;]&amp;#039;);&lt;br /&gt;
           if (target.length) {&lt;br /&gt;
             $(&amp;#039;html,body&amp;#039;).animate({&lt;br /&gt;
                 scrollTop: target.offset().top&lt;br /&gt;
            }, 1000);&lt;br /&gt;
            return false;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beispiel 2 (jQuery) mit Offset&lt;br /&gt;
&lt;br /&gt;
http://1stwebmagazine.com/jquery-scroll-to-anchor-point&lt;/div&gt;</summary>
		<author><name>93.208.111.215</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=JavaScript_-_Snippets&amp;diff=22004</id>
		<title>JavaScript - Snippets</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=JavaScript_-_Snippets&amp;diff=22004"/>
		<updated>2017-02-28T17:45:39Z</updated>

		<summary type="html">&lt;p&gt;93.208.111.215: /* Scroll / Fixed Navbar */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Links ==&lt;br /&gt;
Siehe auch&lt;br /&gt;
&lt;br /&gt;
[[JavaScripts - Basics]]&lt;br /&gt;
&lt;br /&gt;
[[jQuery - Snippets]]&lt;br /&gt;
&lt;br /&gt;
== Sonderzeichen in Alert-Meldungen ==&lt;br /&gt;
&lt;br /&gt;
Oft sieht man im Web sehr hässliche alert-Meldungen , in denen die Umlaute nicht korrekt dargestellt sind. Das liegt auch daran, dass unterschiedliche Betriebssystem Zeichen unterschiedlich kodieren. Damit so etwas möglichst vermieden wird, sollte man solche Meldungen mit alert(unescape(&amp;quot;...&amp;quot;)) anzeigen.&lt;br /&gt;
&lt;br /&gt;
Beispiel: &lt;br /&gt;
 alert(unescape(&amp;quot;So was d%E4mliches%21&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
Zeichen	so verschlüsseln:&lt;br /&gt;
\	\\&lt;br /&gt;
&amp;quot;	\&amp;quot;&lt;br /&gt;
&amp;#039;	\&amp;#039;&lt;br /&gt;
Zeilenumbruch	\n&lt;br /&gt;
Wagenrücklauf	\r&lt;br /&gt;
(Den Unterschied zum Zeilenumbruch habe ich auch noch nicht begriffen.)&lt;br /&gt;
Tabulator	\t&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zeichen	so:&lt;br /&gt;
Ä	%C4&lt;br /&gt;
Ö	%D6&lt;br /&gt;
Ü	%DC&lt;br /&gt;
ä	%E4&lt;br /&gt;
ö	%F6&lt;br /&gt;
ü	%FC&lt;br /&gt;
ß	%DF&lt;br /&gt;
€	%u20AC&lt;br /&gt;
$	%24&lt;br /&gt;
%	%25&lt;br /&gt;
&lt;br /&gt;
Generier Tool:&lt;br /&gt;
http://www.salesianer.de/util/alert-umlaute.html&lt;br /&gt;
&lt;br /&gt;
== Teil einer Seite drucken ==&lt;br /&gt;
Old School JavaScript, sollte sich  aber relativ einfach auf jQuery übertragen lassen.&lt;br /&gt;
&lt;br /&gt;
Quelle: http://www.webstool.de/de/tipps_down_druck3.html Zugriff: 10/2011&lt;br /&gt;
&lt;br /&gt;
Mit einem einfachen JavaScript lässt sich mit relativ wenig Aufwand eine druckerfreundliche Version einer Webseite bei Bedarf erzeugen.&lt;br /&gt;
&lt;br /&gt;
Das JavaScript wird nachstehend vorgestellt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function ausgabe()&lt;br /&gt;
{&lt;br /&gt;
var ref = document.getElementById(&amp;quot;auswahl&amp;quot;);&lt;br /&gt;
var ausgabe;&lt;br /&gt;
// nächste Zeile öffnet ein Fenster der Größe 800 x 600 Pixel&lt;br /&gt;
ausgabe=window.open(&amp;quot;#&amp;quot;,&amp;quot;fenster&amp;quot;,&amp;quot;width=800,height=600,resizable=yes,menubar=yes,left=50,top=50&amp;quot;);&lt;br /&gt;
ausgabe.document.open();&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;html&amp;gt;\n&amp;lt;head&amp;gt;\n&amp;lt;title&amp;gt;Druckversion&amp;lt;/title&amp;gt;\n&amp;#039;);&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=iso-8859-1&amp;quot;&amp;gt;\n&amp;#039;);&lt;br /&gt;
// in der nächsten Zeile an das eigene Stylesheet anpassen&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;../css/design1.css&amp;quot;&amp;gt;\n&amp;lt;/head&amp;gt;\n&amp;#039;);&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;body&amp;gt;\n&amp;lt;h1 align=&amp;quot;center&amp;quot;&amp;gt;&amp;amp;copy; web s tool - Partner f&amp;amp;uuml;r Ihren Internetauftritt&amp;lt;/h1&amp;gt;\n&amp;#039;);&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;div&amp;gt;\n&amp;#039;);&lt;br /&gt;
// Ausgabe aller Inhalte mit der id = auswahl&lt;br /&gt;
while (ref!=null)&lt;br /&gt;
{&lt;br /&gt;
ausgabe.document.write(ref.innerHTML + &amp;#039;\n&amp;#039;);&lt;br /&gt;
ref = ref.nextSibling;&lt;br /&gt;
}&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;/div&amp;gt;\n&amp;lt;p align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;javascript:window.print()&amp;quot;&amp;gt;drucken&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;\n&amp;lt;/body&amp;gt;\n&amp;lt;/html&amp;gt;\n&amp;#039;);&lt;br /&gt;
ausgabe.document.close();&lt;br /&gt;
ausgabe.focus();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die externe Einbindung des JavaScripts erfolgt dabei z.B. im head-Bereich der Webseite über&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script language=&amp;quot;JavaScript&amp;quot; src=&amp;quot;../scripts/ausgabe4print.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Von entscheidender Bedeutung ist, dass auf der Seite das auszuwählende Objekt mit der id = &amp;quot;auswahl&amp;quot; (bitte bei Bedarf anpassen) versehen ist. Das auszuwählende Objekt kann dabei eine Tabelle oder ein div-Container sein.&lt;br /&gt;
&lt;br /&gt;
Der Aufruf erfolgt z.B. durch den Link &amp;lt;a href=&amp;quot;javascript:ausgabe();&amp;quot;&amp;gt; Druckversion&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fehler Behandlung ==&lt;br /&gt;
=== Prüfen ob ein Element existiert (normales JavaScript)===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function isElement(obj) {&lt;br /&gt;
  try {&lt;br /&gt;
    //Using W3 DOM2 (works for FF, Opera and Chrom)&lt;br /&gt;
    return obj instanceof HTMLElement;&lt;br /&gt;
  }&lt;br /&gt;
  catch(e){&lt;br /&gt;
    return (typeof obj===&amp;quot;object&amp;quot;) &amp;amp;&amp;amp;&lt;br /&gt;
      (obj.nodeType===1) &amp;amp;&amp;amp; (typeof obj.style === &amp;quot;object&amp;quot;) &amp;amp;&amp;amp;&lt;br /&gt;
      (typeof obj.ownerDocument ===&amp;quot;object&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Prüfen ob ein Element in einem Objekt-Literal existiert und nicht null ist ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var data = {&lt;br /&gt;
    &amp;quot;key1&amp;quot; : val,&lt;br /&gt;
    &amp;quot;key2&amp;quot; : val,&lt;br /&gt;
    &amp;quot;key3&amp;quot; : val&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if( &amp;quot;key2&amp;quot; in data &amp;amp;&amp;amp; data.key2 != null){&lt;br /&gt;
...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Eingaben Validieren ==&lt;br /&gt;
=== Handynummer validieren (normales JavaScript) ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function phone_is_valid(nr){&lt;br /&gt;
	var reg2 = /^([0-9]{4,6})+\/([0-9]{6,11})$/;&lt;br /&gt;
	return reg2.test(nr);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Datum validieren (normales JavaScript) ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function date_is_valid(myDate){&lt;br /&gt;
	var isValid = false;&lt;br /&gt;
	var today = new Date();&lt;br /&gt;
	if (!myDate) return false;&lt;br /&gt;
	myDate=myDate.toString();&lt;br /&gt;
	arrDate=myDate.split(&amp;quot;.&amp;quot;);&lt;br /&gt;
	if (arrDate.length!=3) return false;&lt;br /&gt;
	arrDate[0]=parseInt(arrDate[0],10);&lt;br /&gt;
	arrDate[1]=parseInt(arrDate[1],10)-1;&lt;br /&gt;
	if (arrDate[2].length==2) arrDate[2]=&amp;quot;20&amp;quot;+arrDate[2]&lt;br /&gt;
	var kontrolldatum=new Date(arrDate[2],arrDate[1],arrDate[0]);&lt;br /&gt;
	// Datum gültig ?&lt;br /&gt;
	if (kontrolldatum.getDate()==arrDate[0] &amp;amp;&amp;amp; kontrolldatum.getMonth()==arrDate[1] &amp;amp;&amp;amp; kontrolldatum.getFullYear()==arrDate[2])&lt;br /&gt;
	{&lt;br /&gt;
		// in der Zukunft&lt;br /&gt;
		if (kontrolldatum.getTime()-today.getTime()+(24*60*60*1000) &amp;gt; 0)&lt;br /&gt;
			return true; 		&lt;br /&gt;
	}&lt;br /&gt;
	return false;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Maus ==&lt;br /&gt;
[[JavaScript - Maus]]&lt;br /&gt;
== Timer ==&lt;br /&gt;
Quelle: http://blog.agrafix.net/2011/10/javascript-timers-mit-jquery/&lt;br /&gt;
&lt;br /&gt;
Benötigte Funktionen sind window.setTimeout und window.setInterval&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// funktion verzögert aufrufen&lt;br /&gt;
function machWas() {&lt;br /&gt;
   alert(&amp;#039;alert() mit 1000ms verzögerung!&amp;#039;);&lt;br /&gt;
}&lt;br /&gt;
window.setTimeout(machWas, 1000);&lt;br /&gt;
 &lt;br /&gt;
// funktion alle X Millisekunden aufruden&lt;br /&gt;
function machWasOft() {&lt;br /&gt;
   alert(&amp;#039;alle 1000ms ein alert()&amp;#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
window.setInterval(machWasOft, 1000);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Doch was ist, wenn ich jetzt einen solchen Timer ändern oder abbrechen möchte? Das ist eigentlich auch nicht schwer – die Funktionen setTimeout/setInterval geben ein Objekt zurück über das sie sich wieder beenden lassen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var x = 0;&lt;br /&gt;
function machWasAbbrechbarOft() {&lt;br /&gt;
    x += 1;&lt;br /&gt;
    if (x &amp;gt; 200) {&lt;br /&gt;
        window.clearInterval(running); // beende das &amp;quot;Interval&amp;quot; nach 201 Ausführungen&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
var running = window.setInterval(machWasAbbrechbarOft, 1000);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Timer mit jQuery ===&lt;br /&gt;
Für größere Projekte gibt es ein komfortableres jQuery Plugin&lt;br /&gt;
&lt;br /&gt;
Mit diesem Plugin geht das “Interval” setzen dann wie folgt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$(document).everyTime(1000, &amp;quot;machWasOftAbbrechbar&amp;quot;, function(i) { // alle 1000ms&lt;br /&gt;
  alert(&amp;#039;Hallo ich bin der &amp;#039; + i + &amp;#039;te Aufruf!&amp;#039;); // machWasOftAbbrechbar, hier die funktion die aufgerufen werden soll&lt;br /&gt;
}, 200); // 200 mal ausführen&lt;br /&gt;
Der zweite Parameter, machWasOftAbbrechbar, stellt hierbei ein sogenanntes “label” dar, über das man den gestarten Timer dann wieder abbrechen kann:&lt;br /&gt;
&lt;br /&gt;
$(document).stopTime(&amp;quot;machWasOftAbbrechbar&amp;quot;); // stoppe machWasOftAbbrechbar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Viel mehr gibt’s eigentlich nicht dazu zu sagen – die Dokumentation dazu findet man, genau wie das Plugin selbst, unter http://plugins.jquery.com/project/timers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== JavaScript - Objekte ==&lt;br /&gt;
[[JavaScript - Objektorientierte Programmierung]]&lt;br /&gt;
=== Objekte löschen ===&lt;br /&gt;
 for (prop in allOverlays) { if (allOverlays.hasOwnProperty(prop)) { delete allOverlays[prop]; } } //ie 6 gc problems&lt;br /&gt;
 //allOverlays = {};&lt;br /&gt;
&lt;br /&gt;
== JavaScript - Strings ==&lt;br /&gt;
[[JavaScript - Strings]]&lt;br /&gt;
&lt;br /&gt;
== JavaScript - HTML5 Audio ==&lt;br /&gt;
[[JavaScript - HTML5 Audio]]&lt;br /&gt;
&lt;br /&gt;
== JavaScript - Verschiedenes ==&lt;br /&gt;
=== JavaScript Animation ===&lt;br /&gt;
Siehe [[Animation im Web]]&lt;br /&gt;
=== Sortieren ===&lt;br /&gt;
http://www.javascriptkit.com/javatutors/arraysort.shtml&lt;br /&gt;
==== URL Parameter auslesen ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function getUrlVars()&lt;br /&gt;
/* get GET Vars from URl */&lt;br /&gt;
{&lt;br /&gt;
    var vars = [], hash;&lt;br /&gt;
    var hashes = window.location.href.slice(window.location.href.indexOf(&amp;#039;?&amp;#039;) + 1).split(&amp;#039;&amp;amp;&amp;#039;);&lt;br /&gt;
    for(var i = 0; i &amp;lt; hashes.length; i++)&lt;br /&gt;
    {&lt;br /&gt;
        hash = hashes[i].split(&amp;#039;=&amp;#039;);&lt;br /&gt;
        vars.push(hash[0]);&lt;br /&gt;
        vars[hash[0]] = hash[1];&lt;br /&gt;
    }&lt;br /&gt;
    return vars;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Anchor Teil bei Links extrahieren ===&lt;br /&gt;
Manchmal möchte man nur den Anchor Teil mit #meinAnchor&lt;br /&gt;
 var url = &amp;quot;www.aaa.com/task1/1.3.html#a_1&amp;quot;;&lt;br /&gt;
 var hash = url.substring(url.indexOf(&amp;quot;#&amp;quot;)+1);&lt;br /&gt;
=== Scrolling ===&lt;br /&gt;
==== Scroll / Fixed Navbar ====&lt;br /&gt;
jQuery&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
  jQuery(document).ready(function($) {&lt;br /&gt;
&lt;br /&gt;
    function sticky()&lt;br /&gt;
    {&lt;br /&gt;
        var window_top=$(window).scrollTop();&lt;br /&gt;
        var top_position=$(&amp;#039;body&amp;#039;).offset().top;&lt;br /&gt;
        var element_to_stick=$(&amp;#039;.sticky&amp;#039;);&lt;br /&gt;
        &lt;br /&gt;
        if (window_top &amp;gt; top_position) {&lt;br /&gt;
            element_to_stick.addClass(&amp;#039;sticked&amp;#039;);&lt;br /&gt;
        } else {&lt;br /&gt;
            element_to_stick.removeClass(&amp;#039;sticked&amp;#039;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    $(window).scroll(sticky);&lt;br /&gt;
    sticky();&lt;br /&gt;
    &lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/script&amp;gt; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
CSS - wichtig vor allem fixed.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
div.sticky {&lt;br /&gt;
    top: 0;&lt;br /&gt;
    position: fixed;&lt;br /&gt;
    width: 100%&lt;br /&gt;
    z-index: 1000;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Smooth Scrolling für Anchor Tags oder toTop Links ====&lt;br /&gt;
Beispiel 1 (jQuery) &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$(&amp;#039;a[href*=#]:not([href=#])&amp;#039;).click(function() {&lt;br /&gt;
    if (location.pathname.replace(/^\//,&amp;#039;&amp;#039;) == this.pathname.replace(/^\//,&amp;#039;&amp;#039;) &lt;br /&gt;
        || location.hostname == this.hostname) {&lt;br /&gt;
&lt;br /&gt;
        var target = $(this.hash);&lt;br /&gt;
        target = target.length ? target : $(&amp;#039;[name=&amp;#039; + this.hash.slice(1) +&amp;#039;]&amp;#039;);&lt;br /&gt;
           if (target.length) {&lt;br /&gt;
             $(&amp;#039;html,body&amp;#039;).animate({&lt;br /&gt;
                 scrollTop: target.offset().top&lt;br /&gt;
            }, 1000);&lt;br /&gt;
            return false;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beispiel 2 (jQuery) mit Offset&lt;br /&gt;
&lt;br /&gt;
http://1stwebmagazine.com/jquery-scroll-to-anchor-point&lt;/div&gt;</summary>
		<author><name>93.208.111.215</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=JavaScript_-_Snippets&amp;diff=22003</id>
		<title>JavaScript - Snippets</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=JavaScript_-_Snippets&amp;diff=22003"/>
		<updated>2017-02-28T17:34:27Z</updated>

		<summary type="html">&lt;p&gt;93.208.111.215: /* Scrolling */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Links ==&lt;br /&gt;
Siehe auch&lt;br /&gt;
&lt;br /&gt;
[[JavaScripts - Basics]]&lt;br /&gt;
&lt;br /&gt;
[[jQuery - Snippets]]&lt;br /&gt;
&lt;br /&gt;
== Sonderzeichen in Alert-Meldungen ==&lt;br /&gt;
&lt;br /&gt;
Oft sieht man im Web sehr hässliche alert-Meldungen , in denen die Umlaute nicht korrekt dargestellt sind. Das liegt auch daran, dass unterschiedliche Betriebssystem Zeichen unterschiedlich kodieren. Damit so etwas möglichst vermieden wird, sollte man solche Meldungen mit alert(unescape(&amp;quot;...&amp;quot;)) anzeigen.&lt;br /&gt;
&lt;br /&gt;
Beispiel: &lt;br /&gt;
 alert(unescape(&amp;quot;So was d%E4mliches%21&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
Zeichen	so verschlüsseln:&lt;br /&gt;
\	\\&lt;br /&gt;
&amp;quot;	\&amp;quot;&lt;br /&gt;
&amp;#039;	\&amp;#039;&lt;br /&gt;
Zeilenumbruch	\n&lt;br /&gt;
Wagenrücklauf	\r&lt;br /&gt;
(Den Unterschied zum Zeilenumbruch habe ich auch noch nicht begriffen.)&lt;br /&gt;
Tabulator	\t&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zeichen	so:&lt;br /&gt;
Ä	%C4&lt;br /&gt;
Ö	%D6&lt;br /&gt;
Ü	%DC&lt;br /&gt;
ä	%E4&lt;br /&gt;
ö	%F6&lt;br /&gt;
ü	%FC&lt;br /&gt;
ß	%DF&lt;br /&gt;
€	%u20AC&lt;br /&gt;
$	%24&lt;br /&gt;
%	%25&lt;br /&gt;
&lt;br /&gt;
Generier Tool:&lt;br /&gt;
http://www.salesianer.de/util/alert-umlaute.html&lt;br /&gt;
&lt;br /&gt;
== Teil einer Seite drucken ==&lt;br /&gt;
Old School JavaScript, sollte sich  aber relativ einfach auf jQuery übertragen lassen.&lt;br /&gt;
&lt;br /&gt;
Quelle: http://www.webstool.de/de/tipps_down_druck3.html Zugriff: 10/2011&lt;br /&gt;
&lt;br /&gt;
Mit einem einfachen JavaScript lässt sich mit relativ wenig Aufwand eine druckerfreundliche Version einer Webseite bei Bedarf erzeugen.&lt;br /&gt;
&lt;br /&gt;
Das JavaScript wird nachstehend vorgestellt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function ausgabe()&lt;br /&gt;
{&lt;br /&gt;
var ref = document.getElementById(&amp;quot;auswahl&amp;quot;);&lt;br /&gt;
var ausgabe;&lt;br /&gt;
// nächste Zeile öffnet ein Fenster der Größe 800 x 600 Pixel&lt;br /&gt;
ausgabe=window.open(&amp;quot;#&amp;quot;,&amp;quot;fenster&amp;quot;,&amp;quot;width=800,height=600,resizable=yes,menubar=yes,left=50,top=50&amp;quot;);&lt;br /&gt;
ausgabe.document.open();&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;html&amp;gt;\n&amp;lt;head&amp;gt;\n&amp;lt;title&amp;gt;Druckversion&amp;lt;/title&amp;gt;\n&amp;#039;);&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=iso-8859-1&amp;quot;&amp;gt;\n&amp;#039;);&lt;br /&gt;
// in der nächsten Zeile an das eigene Stylesheet anpassen&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;../css/design1.css&amp;quot;&amp;gt;\n&amp;lt;/head&amp;gt;\n&amp;#039;);&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;body&amp;gt;\n&amp;lt;h1 align=&amp;quot;center&amp;quot;&amp;gt;&amp;amp;copy; web s tool - Partner f&amp;amp;uuml;r Ihren Internetauftritt&amp;lt;/h1&amp;gt;\n&amp;#039;);&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;div&amp;gt;\n&amp;#039;);&lt;br /&gt;
// Ausgabe aller Inhalte mit der id = auswahl&lt;br /&gt;
while (ref!=null)&lt;br /&gt;
{&lt;br /&gt;
ausgabe.document.write(ref.innerHTML + &amp;#039;\n&amp;#039;);&lt;br /&gt;
ref = ref.nextSibling;&lt;br /&gt;
}&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;/div&amp;gt;\n&amp;lt;p align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;javascript:window.print()&amp;quot;&amp;gt;drucken&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;\n&amp;lt;/body&amp;gt;\n&amp;lt;/html&amp;gt;\n&amp;#039;);&lt;br /&gt;
ausgabe.document.close();&lt;br /&gt;
ausgabe.focus();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die externe Einbindung des JavaScripts erfolgt dabei z.B. im head-Bereich der Webseite über&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script language=&amp;quot;JavaScript&amp;quot; src=&amp;quot;../scripts/ausgabe4print.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Von entscheidender Bedeutung ist, dass auf der Seite das auszuwählende Objekt mit der id = &amp;quot;auswahl&amp;quot; (bitte bei Bedarf anpassen) versehen ist. Das auszuwählende Objekt kann dabei eine Tabelle oder ein div-Container sein.&lt;br /&gt;
&lt;br /&gt;
Der Aufruf erfolgt z.B. durch den Link &amp;lt;a href=&amp;quot;javascript:ausgabe();&amp;quot;&amp;gt; Druckversion&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fehler Behandlung ==&lt;br /&gt;
=== Prüfen ob ein Element existiert (normales JavaScript)===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function isElement(obj) {&lt;br /&gt;
  try {&lt;br /&gt;
    //Using W3 DOM2 (works for FF, Opera and Chrom)&lt;br /&gt;
    return obj instanceof HTMLElement;&lt;br /&gt;
  }&lt;br /&gt;
  catch(e){&lt;br /&gt;
    return (typeof obj===&amp;quot;object&amp;quot;) &amp;amp;&amp;amp;&lt;br /&gt;
      (obj.nodeType===1) &amp;amp;&amp;amp; (typeof obj.style === &amp;quot;object&amp;quot;) &amp;amp;&amp;amp;&lt;br /&gt;
      (typeof obj.ownerDocument ===&amp;quot;object&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Prüfen ob ein Element in einem Objekt-Literal existiert und nicht null ist ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var data = {&lt;br /&gt;
    &amp;quot;key1&amp;quot; : val,&lt;br /&gt;
    &amp;quot;key2&amp;quot; : val,&lt;br /&gt;
    &amp;quot;key3&amp;quot; : val&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if( &amp;quot;key2&amp;quot; in data &amp;amp;&amp;amp; data.key2 != null){&lt;br /&gt;
...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Eingaben Validieren ==&lt;br /&gt;
=== Handynummer validieren (normales JavaScript) ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function phone_is_valid(nr){&lt;br /&gt;
	var reg2 = /^([0-9]{4,6})+\/([0-9]{6,11})$/;&lt;br /&gt;
	return reg2.test(nr);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Datum validieren (normales JavaScript) ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function date_is_valid(myDate){&lt;br /&gt;
	var isValid = false;&lt;br /&gt;
	var today = new Date();&lt;br /&gt;
	if (!myDate) return false;&lt;br /&gt;
	myDate=myDate.toString();&lt;br /&gt;
	arrDate=myDate.split(&amp;quot;.&amp;quot;);&lt;br /&gt;
	if (arrDate.length!=3) return false;&lt;br /&gt;
	arrDate[0]=parseInt(arrDate[0],10);&lt;br /&gt;
	arrDate[1]=parseInt(arrDate[1],10)-1;&lt;br /&gt;
	if (arrDate[2].length==2) arrDate[2]=&amp;quot;20&amp;quot;+arrDate[2]&lt;br /&gt;
	var kontrolldatum=new Date(arrDate[2],arrDate[1],arrDate[0]);&lt;br /&gt;
	// Datum gültig ?&lt;br /&gt;
	if (kontrolldatum.getDate()==arrDate[0] &amp;amp;&amp;amp; kontrolldatum.getMonth()==arrDate[1] &amp;amp;&amp;amp; kontrolldatum.getFullYear()==arrDate[2])&lt;br /&gt;
	{&lt;br /&gt;
		// in der Zukunft&lt;br /&gt;
		if (kontrolldatum.getTime()-today.getTime()+(24*60*60*1000) &amp;gt; 0)&lt;br /&gt;
			return true; 		&lt;br /&gt;
	}&lt;br /&gt;
	return false;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Maus ==&lt;br /&gt;
[[JavaScript - Maus]]&lt;br /&gt;
== Timer ==&lt;br /&gt;
Quelle: http://blog.agrafix.net/2011/10/javascript-timers-mit-jquery/&lt;br /&gt;
&lt;br /&gt;
Benötigte Funktionen sind window.setTimeout und window.setInterval&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// funktion verzögert aufrufen&lt;br /&gt;
function machWas() {&lt;br /&gt;
   alert(&amp;#039;alert() mit 1000ms verzögerung!&amp;#039;);&lt;br /&gt;
}&lt;br /&gt;
window.setTimeout(machWas, 1000);&lt;br /&gt;
 &lt;br /&gt;
// funktion alle X Millisekunden aufruden&lt;br /&gt;
function machWasOft() {&lt;br /&gt;
   alert(&amp;#039;alle 1000ms ein alert()&amp;#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
window.setInterval(machWasOft, 1000);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Doch was ist, wenn ich jetzt einen solchen Timer ändern oder abbrechen möchte? Das ist eigentlich auch nicht schwer – die Funktionen setTimeout/setInterval geben ein Objekt zurück über das sie sich wieder beenden lassen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var x = 0;&lt;br /&gt;
function machWasAbbrechbarOft() {&lt;br /&gt;
    x += 1;&lt;br /&gt;
    if (x &amp;gt; 200) {&lt;br /&gt;
        window.clearInterval(running); // beende das &amp;quot;Interval&amp;quot; nach 201 Ausführungen&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
var running = window.setInterval(machWasAbbrechbarOft, 1000);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Timer mit jQuery ===&lt;br /&gt;
Für größere Projekte gibt es ein komfortableres jQuery Plugin&lt;br /&gt;
&lt;br /&gt;
Mit diesem Plugin geht das “Interval” setzen dann wie folgt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$(document).everyTime(1000, &amp;quot;machWasOftAbbrechbar&amp;quot;, function(i) { // alle 1000ms&lt;br /&gt;
  alert(&amp;#039;Hallo ich bin der &amp;#039; + i + &amp;#039;te Aufruf!&amp;#039;); // machWasOftAbbrechbar, hier die funktion die aufgerufen werden soll&lt;br /&gt;
}, 200); // 200 mal ausführen&lt;br /&gt;
Der zweite Parameter, machWasOftAbbrechbar, stellt hierbei ein sogenanntes “label” dar, über das man den gestarten Timer dann wieder abbrechen kann:&lt;br /&gt;
&lt;br /&gt;
$(document).stopTime(&amp;quot;machWasOftAbbrechbar&amp;quot;); // stoppe machWasOftAbbrechbar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Viel mehr gibt’s eigentlich nicht dazu zu sagen – die Dokumentation dazu findet man, genau wie das Plugin selbst, unter http://plugins.jquery.com/project/timers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== JavaScript - Objekte ==&lt;br /&gt;
[[JavaScript - Objektorientierte Programmierung]]&lt;br /&gt;
=== Objekte löschen ===&lt;br /&gt;
 for (prop in allOverlays) { if (allOverlays.hasOwnProperty(prop)) { delete allOverlays[prop]; } } //ie 6 gc problems&lt;br /&gt;
 //allOverlays = {};&lt;br /&gt;
&lt;br /&gt;
== JavaScript - Strings ==&lt;br /&gt;
[[JavaScript - Strings]]&lt;br /&gt;
&lt;br /&gt;
== JavaScript - HTML5 Audio ==&lt;br /&gt;
[[JavaScript - HTML5 Audio]]&lt;br /&gt;
&lt;br /&gt;
== JavaScript - Verschiedenes ==&lt;br /&gt;
=== JavaScript Animation ===&lt;br /&gt;
Siehe [[Animation im Web]]&lt;br /&gt;
=== Sortieren ===&lt;br /&gt;
http://www.javascriptkit.com/javatutors/arraysort.shtml&lt;br /&gt;
==== URL Parameter auslesen ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function getUrlVars()&lt;br /&gt;
/* get GET Vars from URl */&lt;br /&gt;
{&lt;br /&gt;
    var vars = [], hash;&lt;br /&gt;
    var hashes = window.location.href.slice(window.location.href.indexOf(&amp;#039;?&amp;#039;) + 1).split(&amp;#039;&amp;amp;&amp;#039;);&lt;br /&gt;
    for(var i = 0; i &amp;lt; hashes.length; i++)&lt;br /&gt;
    {&lt;br /&gt;
        hash = hashes[i].split(&amp;#039;=&amp;#039;);&lt;br /&gt;
        vars.push(hash[0]);&lt;br /&gt;
        vars[hash[0]] = hash[1];&lt;br /&gt;
    }&lt;br /&gt;
    return vars;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Anchor Teil bei Links extrahieren ===&lt;br /&gt;
Manchmal möchte man nur den Anchor Teil mit #meinAnchor&lt;br /&gt;
 var url = &amp;quot;www.aaa.com/task1/1.3.html#a_1&amp;quot;;&lt;br /&gt;
 var hash = url.substring(url.indexOf(&amp;quot;#&amp;quot;)+1);&lt;br /&gt;
=== Scrolling ===&lt;br /&gt;
==== Scroll / Fixed Navbar ====&lt;br /&gt;
jQuery&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
  jQuery(document).ready(function($) {&lt;br /&gt;
&lt;br /&gt;
    function sticky()&lt;br /&gt;
    {&lt;br /&gt;
        var window_top=$(window).scrollTop();&lt;br /&gt;
        var top_position=$(&amp;#039;body&amp;#039;).offset().top;&lt;br /&gt;
        var element_to_stick=$(&amp;#039;#myStickyElement&amp;#039;);&lt;br /&gt;
        &lt;br /&gt;
        if (window_top &amp;gt; top_position) {&lt;br /&gt;
            element_to_stick.addClass(&amp;#039;sticky&amp;#039;);&lt;br /&gt;
        } else {&lt;br /&gt;
            element_to_stick.removeClass(&amp;#039;sticky&amp;#039;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    $(window).scroll(sticky);&lt;br /&gt;
    sticky();&lt;br /&gt;
    &lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/script&amp;gt; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
CSS - wichtig vor allem fixed.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
div.sticky {&lt;br /&gt;
    top: 0;&lt;br /&gt;
    position: fixed;&lt;br /&gt;
    width: 100%&lt;br /&gt;
    z-index: 1000;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== Smooth Scrolling für Anchor Tags oder toTop Links ====&lt;br /&gt;
Beispiel 1 (jQuery) &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$(&amp;#039;a[href*=#]:not([href=#])&amp;#039;).click(function() {&lt;br /&gt;
    if (location.pathname.replace(/^\//,&amp;#039;&amp;#039;) == this.pathname.replace(/^\//,&amp;#039;&amp;#039;) &lt;br /&gt;
        || location.hostname == this.hostname) {&lt;br /&gt;
&lt;br /&gt;
        var target = $(this.hash);&lt;br /&gt;
        target = target.length ? target : $(&amp;#039;[name=&amp;#039; + this.hash.slice(1) +&amp;#039;]&amp;#039;);&lt;br /&gt;
           if (target.length) {&lt;br /&gt;
             $(&amp;#039;html,body&amp;#039;).animate({&lt;br /&gt;
                 scrollTop: target.offset().top&lt;br /&gt;
            }, 1000);&lt;br /&gt;
            return false;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beispiel 2 (jQuery) mit Offset&lt;br /&gt;
&lt;br /&gt;
http://1stwebmagazine.com/jquery-scroll-to-anchor-point&lt;/div&gt;</summary>
		<author><name>93.208.111.215</name></author>
	</entry>
</feed>