JavaScript links: Difference between revisions

The educational technology and digital learning wiki
Jump to navigation Jump to search
 
(77 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Under construction}} ... really
{{Incomplete}}


== Definition ==
== Definition ==


This is a short English / French links page on JavaScript. Only sporadically maintainted !
This is a short links page on JavaScript, a popular [[scripting language]] for [[computer programming]]. '''Only sporadically maintainted''' !


== JavaScript Reference ==
As of April 2014, '''heavy updating''' is needed - [[User:Daniel K. Schneider|Daniel K. Schneider]] ([[User talk:Daniel K. Schneider|talk]]) 12:46, 2 April 2014 (CEST)


* [http://developer.mozilla.org/en/docs/JavaScript JavaScript at Mozilla developper center] (JS 1.5 plur JS 1.6, 1.7, 1.8 upgrades]
== Reference and Manuals ==
 
=== Introductions and general overviews ===
 
* [http://en.wikipedia.org/wiki/Javascript JavaScript] (Wikipedia)
* [http://en.wikipedia.org/wiki/Client-side_JavaScript Client-side JavaScript] (Wikipedia)
 
=== JavaScript Reference and manuals ===
 
* [http://developer.mozilla.org/en/docs/JavaScript JavaScript at Mozilla developper center] (JS 1.5 plus JS 1.6, 1.7, 1.8 upgrades).
* [http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Guide Core JavaScript 1.5 Guide]  Can be used as Tutorial for the language only. Use a JS 1.2 or JS1.3 Guide for built-in non-standardized JavaScript objects, use the [[DOM]] specs for DOM objects.
* [http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Guide Core JavaScript 1.5 Guide]  Can be used as Tutorial for the language only. Use a JS 1.2 or JS1.3 Guide for built-in non-standardized JavaScript objects, use the [[DOM]] specs for DOM objects.
* [http://tecfa.unige.ch/guides/js/jsguide15/ JavaScript 1.5 Guide] (local copy of a Netscape version)
* [http://tecfa.unige.ch/guides/js/jsguide15/ JavaScript 1.5 Guide] (Local copy of an old Netscape version)
* [http://tecfa.unige.ch/guides/js/e262-pdf.pdf ECMA-262 Specification] (local copy, PDF). ECMA Script is a standardized Core Version (e.g. without any browser objects) based on the JavaScript 1.1 Specification. ECMA Script is the formal basis for many scripting languages (JavaScript 1.5, SVG and VRML scripting, Actionscript 3 etc.)
* [http://www.whatwg.org/specs/web-apps/current-work/ HTML 5] Working Draft - 21 April 2008. This proposal adds features to HTML and the DOM that ease the authoring of Web-based applications. Additions include the context menus, a direct-mode graphics canvas, inline popup windows, and server-sent events....


== Document object model ==
'''Important''': The core JavaScript/JScript/Actionscript languages are defined by [[ECMAScript]]. There may be some little differences and various degrees of implementation.


=== General ===
* [http://www.jslint.com/ JSLint] is an online validator tool that checks a professional subset of JavaScript, a stricter language than that defined by Edition 3 of the ECMAScript Language Specification. The subset is related to recommendations found in Code Conventions for the JavaScript Programming Language. This verifier may hurt your feelings :)
 
* [http://en.wikipedia.org/wiki/JavaScript_syntax JavaScript Syntax] (Wikipedia)
 
=== Document object model (DOM) ===


* [http://www.w3.org/DOM/Activity W3C Document Object Model (DOM) Activity Statement] (points to all relevant DOM documents)
* [http://www.w3.org/DOM/Activity W3C Document Object Model (DOM) Activity Statement] (points to all relevant DOM documents)
Line 28: Line 41:
* History: For older NS 4.7 browsers '''and''' non-standardized so-called DOM 0 (e.g. HTML inline, browser interfaces) you may read: [http://tecfa.unige.ch/js/jsguide13/index.htm JavaScript 1.3 Guide] and [http://tecfa.unige.ch/js/jsref13/index.htm JavaScript 1.3 Reference Guide]. These are '''outdated''', but still on of the best references on how to use the old-style "standard" JavaScript Objects.
* History: For older NS 4.7 browsers '''and''' non-standardized so-called DOM 0 (e.g. HTML inline, browser interfaces) you may read: [http://tecfa.unige.ch/js/jsguide13/index.htm JavaScript 1.3 Guide] and [http://tecfa.unige.ch/js/jsref13/index.htm JavaScript 1.3 Reference Guide]. These are '''outdated''', but still on of the best references on how to use the old-style "standard" JavaScript Objects.


== FAQs and Short References ==
=== FAQs and Short References ===


* [http://www.irt.org/script/faq.htm JavaScript FAQ] (Includes FAQ related to JavaScript Dates, Forms, Frames, Images, Source Files, Layers, Links, Miscellaneous, Numbers, Strings, Tables, and Windows) ([http://www.irt.org/articles/script.htm articles])
* [http://www.dannyg.com/ref/jsminifaq.html JavaScript Mini-FAQ] by Danny Goodman (Goodman is author of JavaScript books)
* [http://www.dannyg.com/ref/jsminifaq.html JavaScript Mini-FAQ] by Danny Goodman (Goodman is author of JavaScript books)
* Danny Goodman's [http://www.dannyg.com/ref/jsquickref.html JavaScript and Browser Objects Quick Reference]
* Danny Goodman's [http://www.dannyg.com/ref/jsquickref.html JavaScript and Browser Objects Quick Reference]
* [http://www.devguru.com/technologies/javascript/home.asp DevGuru JavaScriptQuickRef] (events, functions, methods, objects, operators, properties, statements, and values)
=== Specialized information and compatibility tables ===
; Events
* [http://www.quirksmode.org/js/events_compinfo.html Event compatibility tables]. Overview table from Quirksmode, not up-to-date but still useful (5/2008).
* [http://en.wikipedia.org/wiki/DOM_Events DOM events] (Wikipedia). This also can be used as short tutorial (scroll down)
* [http://developer.mozilla.org/en/docs/DOM:event DOM:event] (Gecko DOM reference)
=== Front-end languages ===
Languages that compile into JavaScript and allow to define things in an easier way...
* [http://en.wikipedia.org/wiki/CoffeeScript CoffeeScript]
* [http://en.wikipedia.org/wiki/Haxe Haxe]
== Tutorials and tutorial sites ==
Warning: Some tutorials are not very clear about what's standardized, what's obsolete and what's informal but well supported.
=== Beginners tutorials ===
* [http://www.landofcode.com/javascript/ Javascript tutorials] (Land of Code). Good.


== General on-line tutorials ==
* [http://www.w3schools.com/js/ JavaScript Tutorial (W3Schools)]
 
* [http://javascript.about.com/od/reference/a/js101.htm JavaScript 101]
 
* [http://www.sitepoint.com/print/javascript-from-scratch JavaScript from Scratch] (sitepoint)
 
* [http://www.openjs.com/tutorials/basic_tutorial/ ABC of JavaScript]. An Interactive JavaScript Tutorial]
 
* [http://selfhtml.org/ SELFHTML] Tutorial by Stephan Münz (German and French)
** [http://de.selfhtml.org/javascript/index.htm JavaScript/DOM] (German)
** [http://fr.selfhtml.org/javascript/index.htm JavaScript/DOM] (Français). Contient une introduction à JavaScript, à DOM et une référence objet.
 
* [http://www.webteacher.com/javascript/ Welcome To JavaScript for the Total Non-Programmer] (WebTeacher).
* [http://www.siteduzero.com/tutoriel-3-309958-premiers-pas-en-javascript.html Premiers pas en Javascript] (Français).
 
* [http://thenewboston.org/list.php?cat=10 JavaScript tutorials]. Videos by Bucky Roberts. Made for XHTML1. Nice for people who like videos, but somewhat outdated
 
=== General on-line tutorials ===
 
* [http://www.howtocreate.co.uk/tutorials/javascript/ JavaScript tutorial]. Several tutorials by Mark "Tarquin" Wilton-Jones. One of the best on-line texts I have seen. Suitable for people with some programming experience.
 
* [http://en.wikiversity.org/wiki/Web_Design/An_Introduction_to_Programming_with_Javascript Web Design/An Introduction to Programming with Javascript] (Wikiversity project. For the moment this page includes a few Wikiversity tutorials plus a good list of external links that you could follow - 15:55, 29 July 2009 (UTC))


* [http://developer.mozilla.org/en/docs/A_re-introduction_to_JavaScript A re-introduction to JavaScript] Good recent introduction to the language from Mozilla. Suitable for folks with programming experience. (2006)
* [http://developer.mozilla.org/en/docs/A_re-introduction_to_JavaScript A re-introduction to JavaScript] Good recent introduction to the language from Mozilla. Suitable for folks with programming experience. (2006)
* [http://selfhtml.org/ SELFHTML] Tutorial by Stephan M�nz (site central HTML/JS/DOM plusieurs langues)
 
* [http://fr.selfhtml.org/javascript/ SELFHTML JavaScript/DOM] Tutorial by Stephan M�nz (traduction fran�aise)
* [http://www.codecademy.com/tracks/javascript Introducation to JavaScript], part of [http://www.codecademy.com/learn Learn to code while building a project] Codeacademy.
* [http://actuel.fr.selfhtml.org/articles/javascript/ Articles sp�cialis�s SELFHTML: JavaScript]
 
* [http://www.quirksmode.org/ Quirksmode CSS and Javascript tips] by Peter Paul Koch. Tutorial and examples, Compatibility tables.
* [http://en.wikibooks.org/wiki/Programming:JavaScript JavaScript] (WikiBooks tutorial). Suitable for somewhat technical people.
* [http://oopweb.com/JavaScript/Documents/jsintro/VolumeFrames.html Stefan Koch's Voodoo's Introduction to JavaScript.] Ok pour JS ancien, pas actualis� pour DOM. Il existe une traduction fran�aise [http://www.chez.com/qaghan/JavaScript/fscriptn.php Introduction � JavaScript]. (bien, mais dat� (!)
 
* [http://www.webmonkey.com/webmonkey/programming/javascript/index.html Webmonkey: Javascript collection]<nowiki>: links &amp; tutorials (but too much advertising !)</nowiki>
* [http://eloquentjavascript.net/ Eloquent JavaScript] A Modern Introduction to Programming by Marijn Haverbeke. A second version should be out by the end of 2014, draft parts are there as of March 2014.
* [http://builder.com.com/1200-31-5084860.html JavaScript Tutorials @ builder.com],
 
* [http://wsabstract.com/javatutors/dom.shtml Introduction to the DOM of IE5 / NS6]
=== old-style JavaScript ===
* [http://www.webreference.com/programming/javascript/ JavaScript tutorials at webreference] (Lots !)
(but useful)
* [http://tecfa.unige.ch/guides/js/javascript-tutorial/ Quelques tutoriels] installés localement (il y a longtemps, � VERIFIER).
 
* [http://oopweb.com/JavaScript/Documents/jsintro/VolumeFrames.html Stefan Koch's Voodoo's Introduction to JavaScript.] Does not include modern DOM . There is a  [http://www.chez.com/qaghan/JavaScript/fscriptn.php Introduction à JavaScript] french translation.
 
* [http://www.cs.tut.fi/~jkorpela/forms/javascript.html JavaScript and HTML: possibilities and caveats] by Jukka "Yucca" Korpela, 2005.
* [http://www.cs.tut.fi/~jkorpela/forms/javascript.html JavaScript and HTML: possibilities and caveats] by Jukka "Yucca" Korpela, 2005.
* [http://www.netmechanic.com/news/vol5/beginner_no19.htm Beginner Tip: Form Processing Basics] by Larisa Thomason, NetMechanic


== DOM tutorials ==
=== Forms ===
(more needed)


* [http://www.webreference.com/programming/javascript/jkm2/index.html JavaScript and HTML Tricks], by Joseph Myers, Webreference, Jul 2008.
* [http://www.webreference.com/programming/javascript/jkm/ How to Use a JavaScript Query String Parser], by Joseph Myers, Webreference, Jul 2008.
* [http://www.webreference.com/programming/javascript/jkm4/ How to Use Javascript to Validate Form Data], by Joseph Myers, Webreference, Oct. 2008.
=== JavaScript, DOM and DHTML tutorials ===
* [http://wsabstract.com/javatutors/dom.shtml Introduction to the DOM Introduction to the DOM of IE/ Firefox] by Timothy Francis Brady.
* [http://www.oreillynet.com/pub/a/javascript/synd/2001/08/17/DOM-2.html Dynamic Content with DOM-2 (Part I of II)] by S.A. LePera, O'Reilly 2001
* [http://www.oreillynet.com/pub/a/javascript/synd/2001/08/17/DOM-2.html Dynamic Content with DOM-2 (Part I of II)] by S.A. LePera, O'Reilly 2001
* [http://www.brainjar.com/ BrainJar.com]. Mike Hall's experiments in Web Programming. Includes both good tutorials and GNU-licenced code. E.g. [http://www.brainjar.com/dhtml/events/ The DOM Event Model] or [http://www.brainjar.com/dhtml/drag/ Generic Drag]
* [http://www.howtocreate.co.uk/tutorials/javascript/dombasics DOM nodes and tree] by Mark "Tarquin" Wilton-Jones. The essential questions and answers.


== Ajax and DHTML tutorials ==
=== Event handling ===
Important: Support for W3C'''Event model''' and DOM is not the same thing necessarily. Browser support for W3C Event model is bad (e.g. IE 7 doesn't support this)
 
* Quirksmode has a number of tutorials on events (you also may consider buying the [http://www.quirksmode.org/book/ book])
** [http://www.quirksmode.org/js/introevents.html Introduction to Events]
** [http://www.quirksmode.org/js/events_advanced.html Advanced event registration models], etc.
* [http://adomas.org/javascript-mouse-wheel/ Mouse wheel programming in JavaScript]
* [http://www.brainjar.com/dhtml/events/ The DOM Event model] (also introduces on page 1 old-style inline)
 
=== User JavaScript ===
 
* [http://www.opera.com/support/tutorials/userjs/specs/ Take Control with User JavaScript]. For Opera
* Greasemonkey for FF (links to insert)
 
=== DOM CSS ===
 
* [http://www.howtocreate.co.uk/tutorials/javascript/domcss DOM CSS] by Mark "Tarquin" Wilton-Jones. A tutorial about style switching.
 
=== Ajax and DHTML tutorials ===


* [http://developer.mozilla.org/en/docs/DHTML DHTML] page at Mozilla developper center (demos)
* [http://developer.mozilla.org/en/docs/DHTML DHTML] page at Mozilla developper center (demos)
Line 61: Line 152:
* [http://www.webforefront.com/archives/2005/05/ajax_demystifyi.html AJAX : Demystifying the buzz for all platforms.] @ Web Forefront Mai 2005. Short intro article
* [http://www.webforefront.com/archives/2005/05/ajax_demystifyi.html AJAX : Demystifying the buzz for all platforms.] @ Web Forefront Mai 2005. Short intro article
* [http://weblog.infoworld.com/article/05/10/17/42FEajaxcase_2.html Putting AJAX to work] InfoWorld article, (mostly a product overview)
* [http://weblog.infoworld.com/article/05/10/17/42FEajaxcase_2.html Putting AJAX to work] InfoWorld article, (mostly a product overview)
=== JS/Ajax framework tutorials ===
* [http://www.webreference.com/programming/javascript/rg19/index.html Popular JavaScript Framework Libraries: An Overview. By Rob Gravelle, WebReference.com (Oct 2008). Focus on Prototype, script.aculo.us and MooTools (others will be discussed in other installments of this series)
=== Canvas ===
&lt;canvas&gt; is a new HTML element which can be used to draw graphics via scripting. For example, it can be used to draw graphs, make photo compositions or even perform animations. This element is part of "HTML 5", i.e. the WhatWG Web applications 1.0 specification.
* [http://developer.mozilla.org/en/docs/HTML:Canvas HTML:Canvas] Page at Mozilla dev center
* [http://developer.mozilla.org/en/docs/Canvas_tutorial Mozilla canevas tutorial]
* [http://developer.mozilla.org/en/docs/Drawing_Graphics_with_Canvas Drawing Graphics with Canvas] (a simpler version of the above)
=== JavaScript tutorials for programmers ===
* [http://blog.morrisjohns.com/javascript_closures_for_dummies.html JavaScript Closures for Dummies], also available as [http://www.javascriptkit.com/javatutors/closures.shtml JavaScript Closures 101- they're not magic] by [http://blog.morrisjohns.com/ Morris Johns]. Such articles may help to understand why JS is an interesting language and has inherited something from [[LISP]].
* [http://blog.morrisjohns.com/illumination_on_javascript_prototypes.html Illumination on JavaScript Prototypes], also by Morris Johns.
* [http://www.webreference.com/programming/javascript/object-oriented_javascript/ Object-Oriented JavaScript], Webreference, 2007 by Cristian Darie, Bogdan Brinzarea
* [http://www.ecmascript.org/es4/spec/evolutionary-programming-tutorial.pdf evolutionary programming in ES4], 2007


== Client-side modifications ==
== Client-side modifications ==


There are browser extensions that allow a user to change behavior of web pages. The best know is Greasemonkey.
There are browser extensions that allow a user to change behavior of web pages. The best know is Greasemonkey.
See the [[User-side JavaScript]] article for more information and an example.


* [http://greasemonkey.mozdev.org/ Greasemonkey]
* [http://greasemonkey.mozdev.org/ Greasemonkey]
* [http://en.wikipedia.org/wiki/Greasemonkey Wikipedia Greasemonkey]
* [http://en.wikipedia.org/wiki/Greasemonkey Wikipedia Greasemonkey]


= Links =
== Server programming with JS ==


(needs some sorting)
* [http://nodejs.org/ Node.js] Quoite {{quotation|is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.}}
 
== Collections and links sites ==
 
=== General indexes ===
 
* [http://dmoz.org/Computers/Programming/Languages/JavaScript/  DMoz JavaScript] (Big Index)
* [http://dir.yahoo.com/Computers_and_Internet/Programming_and_Development/Languages/JavaScript/ Yahoo's js directory] (big meta list)
* [http://www.mozilla.org/js/scripting/ Mozilla's JavaScript Scripting Resources] A short list of good links
* [http://www.objenv.com/cetus/oo_javascript.html Object-Oriented Language: JavaScript / ECMAScript] (Cetus links)
* [http://websitetips.com/dhtml/ DHTML, DOM] and [http://websitetips.com/javascript/ JavaScript, ECMAScript, AJAX] (WebsiteTips.com).
 
=== Ressource sites with tutorials and help ===
 
* [http://www.quirksmode.org/ Quirksmode CSS and Javascript tips] by Peter Paul Koch. Tutorial and examples, Compatibility tables.
* [http://www.webmonkey.com/webmonkey/programming/javascript/index.html Webmonkey: Javascript collection]. Links and good but outdated tutorials.
* [http://www.webreference.com/programming/javascript/ JavaScript tutorials at webreference](Lots !)


== Sites with javascript code ==
== Sites with javascript code ==


(see also tutorials above !)
This chapter should only include free code or code that is free for education. I am not against commercial ware, but this web site mainly targets poor academics and students in educational technology. - [[User:Daniel K. Schneider|Daniel K. Schneider]] 16:33, 12 April 2008 (UTC).
 
See also tutorials above !
 
=== General developer libraries ===
 
Instead of using specific libraries, you also may use script libraries. There are advantages (single code library, quality, ...) and disadvantages (learning curve, dependency on something you don't understand, size, ...) that we should discuss here at some point. See also [[AJAX]].
 
See also
* [[JavaScript libraries]]. '''This article includes an introduction to some principles plus a list of major libraries''' (updated April 2018 or later)
* Wikipedia's [http://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks Comparison of JavaScript frameworks].
* [[Visualization]]
 
=== Scripts and script collections ===
(this subcategory may need some sorting)


* [http://jquery.com/ jQuery] jQuery is a JavaScript library that takes this motto to heart: Writing JavaScript code should be fun... (12/2006).
* [http://www.brothercake.com/site/resources/scripts/ Brothercake] (Good Scripts collection)
* [http://www.mozilla.org/js/scripting/ Mozilla's JavaScript Scripting Resources] A short list of good links
* [http://www.dhtmlgoodies.com/ DHTMLGoodies.com]. A series of nice and up-to-date script. Easy to use website. But the scripts are not dated and no clear indication of compliance with standards/ modern browsers is given.
* [http://dmoz.org/Computers/Programming/Languages/JavaScript/ ] DMoz JavaScript (Big Index)
* [http://www.webreference.com/js/ Doc JavaScript], a webreference.com site.
* [http://www.irt.org/script/faq.htm JavaScript FAQ] JavaScript 'No Content' web site (Includes FAQ related to JavaScript Dates, Forms, Frames, Images, Source Files, Layers, Links, Miscellaneous, Numbers, Strings, Tables, and Windows) ([http://www.irt.org/articles/script.htm articles])
* [http://www.dynamicdrive.com/ Dynamic Drive] Free DHTML (some scripts may not be up to date)
* [http://www.inquiry.com/techtips/js_pro/ JavaScript Pro]<nowiki>: FAQ, informations et ressources (niveau moyen) </nowiki>
* [http://www.hotscripts.com/JavaScript/ HotScripts.com/JavaScript] (Large Scripts collection)
* [http://www.webreference.com/tools/browser/javascript.html Java Script Browser Sniffer] from webreference.com, see also: [http://webreference.com/js/tips/001125.html Sniffing for Netscape 6]
* [http://www.webreference.com/tools/browser/javascript.html Java Script Browser Sniffer] at webreference.com. Updated 10/09/2006 (or better)
* [http://www.webreference.com/js/ Doc JavaScript] (advanced)
* [http://www.javascriptkit.com/cutpastejava.shtml JavaScript Kit] Code to cut/paste (over 400). Some maybe old.
* [http://www.dynamicdrive.com/ Dynamic Drive]<nowiki>: DHTML et autres trucs non standard, � utiliser avec pr�caution </nowiki>
* [http://www.jsmadeeasy.com/ JavaScript Made Easy]. Some nice examples (but the page has JS errors when it loads ...)
* [http://javascript.internet.com/toc.html The JavaScript Source] a nice resource with lots of Cut &amp; Paste javascript examples
* [http://openjsan.org/ JavaScript Archive Network] (JSAN)
* [http://www.webreference.com/programming/javascript/ JavaScript tutorials at webreference] (also has a good list of site with code).
* [http://www.scriptsearch.com/JavaScript/ Scriptsearch]. Large collection of Scripts (also Tutorials, etc.)
* [http://www.scriptsearch.com/JavaScript/ Scriptsearch]. Large collection of Scripts (also Tutorials, etc.)
* [http://dir.yahoo.com/Computers_and_Internet/Programming_and_Development/Languages/JavaScript/ Yahoo's js directory] (big meta list)
* [http://javascript.internet.com/toc.html The JavaScript Source] a nice resource with lots of Cut &amp; Paste javascript examples. Use the little navigation menu to the left (click on "site contents") Be aware of code that may be outdated.
* [http://developer.netscape.com/tech/javascript/index.html DevEdge Online Javascript]. Main Javascript Page at Netscape: Examples, newsgroups, manuals, etc. (RECOMMENDED but advanced)
* [http://hyperdisc.unitec.ac.nz/materials/javascript/top10/ Top10 Most Useful JavaScripts] at Hyperdisc, Unitec.
* [http://www.howtocreate.co.uk/tutorials/javascript/examples  Examples] and [http://www.howtocreate.co.uk/jslibs/ JavaScript libraries] from the [http://www.howtocreate.co.uk/tutorials/javascript/ JavaScript tutorial] by Mark "Tarquin" Wilton-Jones.
 
; For programmers - both learning resource and code snippets or reusable code
* [http://www.brainjar.com/ BrainJar.com]. Mike Hall's experiments in Web Programming. Includes both good tutorials and GNU-licenced code. One of the top JS sites.
* [http://www.dhtmlkitchen.com/ DHTMLKitchen].
* [http://developer.mozilla.org/en/docs/DHTML_Demonstrations_Using_DOM/Style DHTML Demonstrations Using DOM/Style] (Mozilla dev center)
* [http://userjs.org/ userjs.org] (active until 2006)
 
; Examples from books
* [http://www.javascriptworld.com/ JavaScriptWorld] Site of JavaScript and Ajax for the Web, Visual QuickStart Guide, Sixth Edition.
* [http://www.quirksmode.org/book/examplescripts.html PPK on JavaScript - the example scripts]
 
=== Through the Web editor code ===
A list of Javascript HTMs numbers, strings and dates.L, XML, etc. WYSIWYG editors. By default, these are free. There may be better commercial but not listed solutions.
Libraries listed here are all respectable, but (so far)
we don't have any recommendation and features mentionned are not complete. See [http://geniisoft.com/showcase.nsf/WebEditors Comparison table] and [http://www.standards-schmandards.com/2007/wysiwyg-editor-test-2/ Standards schmandards 2007] for comparison.
 
; Bigger
 
* [http://tinymce.moxiecode.com/ TinyMCE].
** Is on of the more popular libraries and fairly easy to integrate and customize. Integrated in many popular CMS systems and cross-browser.
** Used to have trouble with embedded lists (but this is maybe fixed now/ - [[User:Daniel K. Schneider|DKS]])
** [http://en.wikipedia.org/wiki/TinyMCE Wikipedia entry]
 
* [http://www.fckeditor.net/ FckEditor].
** Crossplatform, XHTML 1.0, CSS, paste from Word, spell checker. Integration packs with various server-side languages.
** [http://en.wikipedia.org/wiki/FCKeditor Wikipedia Entry]
 
* [http://www.openwebware.com/ openWYSIWYG].
** Cross-browser, good table manager,
 
* [http://xinha.webfactional.com/ Xinha], Crossplatform.
** ([[User:Daniel K. Schneider|DKS]] thinks it's the default one in the PostNuke CMS).
 
* [http://apps.carleton.edu/opensource/loki/ Loki].
** Claims to be most standards compliant and encourages semantic markup.
 
* [http://www.wymeditor.org/en/ WYMeditor] is a web-based WYSIWYM (What You See Is What You Mean) XHTML editor).
** Its main concept is to leave details of the document's visual layout, and to concentrate on its structure and meaning, while trying to give the user as much comfort as possible.  
** For certain applications where users ought to produce optional XHTML code, this is better than an WYSIWYG editor.
 
* [http://www.unverse.net/whizzywig-cross-browser-html-editor.html Whizzywig].
 
; Smaller
 
* [http://remiya.com/14/htmlbox.xhtml HTMLBox]. Cross-browser interactive open-source HTML textarea built on top of the jQuery library. Easy to use, best for smaller applications (users write smallers texts). 15KB only.
 
* [http://nicedit.com/ NicEdit]. Even more lightweight than HTMLBox. Also can be used through widget code (JS is loaded from nicedit.com).
 
=== Popup and tooltip code ===
JavaScript/DHTML popups that are free and and work with modern browsers. While looking for 2-3 "products" I found several that didn't work properly - [[User:Daniel K. Schneider|Daniel K. Schneider]]
 
* [http://www.brainjar.com/dhtml/windows/ Bride of Windows] Popup, from Brainjar.com
** It's actually a tutorial on how to write your on. But the code is enough mature to be used in production
** A maybe outdated example I made is [http://tecfa.unige.ch/guides/js/ex/coap/week-4/10-dynamic-response.html here].
 
* [http://vikjavev.no/highslide/ Highslide JS] Popup / thumbnails code from Torstein Honsi. Elegant solution and code.
 
* [http://www.openwebware.com/products/openpopups/ openPopUps] Popup code
** Rather easy to use (besides some strange difference between div id and an argument to pass): popup contents is inserted within a div that has an id like "Div1", "Div2" etc. An onload function then should call the hideDiv function in order to hide these div's contents. Finally there is a createWindow function to call for displaying it. The fifth argument is (related?) to the id of the div.
createWindow('My Window', 400, 'brown', 1, 0, 240, 375);
 
* [http://www.sabadelli.it/edoardo/projects/javascript/widget.tooltip Widget.Tooltip.js].
** Creates small tooltips with code like this (additional options can be added):
new Widget.Tooltip({ elementId: 'myElementId', tooltipContent: 'my tooltip content' });
 
* [http://www.howtocreate.co.uk/tutorials/jsexamples/movetooltip.html tooltip] using the [http://www.howtocreate.co.uk/jslibs/ Generic DHTML do everything library] of Mark "Tarquin" Wilton-Jones.
 
=== Menus ===
 
There is a lot of menu code. Some commercial. Some freeware seems to be of better
quality and more in the spirit of modern web design, e.g. code that is based on
a list and that can display without javascript or in old browsers if needed.
There are a lot of free versions from commercial sites. Some of these work (and can be upgraded to a "pro" version), most include "nagware" elements, e.g. menuitems that point to their site and some are totally unusable.
 
The list below should be ok, but I didn't test them all - [[User:Daniel K. Schneider|Daniel K. Schneider]] 16:57, 20 April 2008 (UTC).
 
* [http://www.brainjar.com/dhtml/menubar/ Revenge of the Menu Bar] A tutorial from brainjar.com. Includes good and reusable code for menus that are efficient and reliable.
** [http://www.brainjar.com/dhtml/menubar/demo.html Demo page] (source included in the HTML page).
** Menus are made with div's and classes for these divs.
** Tested, works.
 
* [http://www.dhtmlgoodies.com/index.html?page=menuScripts DHTMLGoodies menus]
** Several menus available. All are free and multi-browser. E.g.
** [http://www.dhtmlgoodies.com/index.html?whichScript=dhtmlgoodies_slide_out_menu Slide-out menu]
** [http://www.dhtmlgoodies.com/index.html?whichScript=menu-for-applications Menu for applications]
** [http://www.dhtmlgoodies.com/index.html?whichScript=dhtmlgoodies_menu2 List based DHTML menu]
 
* JavaScriptkit.com has several menu scripts, e.g.
** [http://www.javascriptkit.com/script/script2/2leveltab.shtml Cut & Paste 2 level horizontal tab menu] at  
** [http://www.javascriptkit.com/script/script2/verticalmenu.shtml Cut & Paste CSS Vertical List Menu]
** Free, multi-browser. Quite light-weight and easy to use.
** [http://www.javascriptkit.com/script/script2/dbmenu/index.shtml dbMenu], script to create multiple types of 2 level drop down menus.
 
* Tigra menus
** [http://www.softcomplex.com/products/tigra_menu/ Tigra Menu] (not tested)
** [http://www.softcomplex.com/products/tigra_tree_menu/ Tigra Tree Menu] (not tested)
** free, multi-browser
 
* Cooldev.com has 2 menus
** [http://javascript.cooldev.com/files/download.php?file=COOLjsMenu COOLjsMenu] (not tested)
** [http://javascript.cooldev.com/files/download.php?file=COOLjsTree COOLjsTree] (not tested)
** "Standard" editions are free
 
* [http://javascript.internet.com/navigation/ javascript.internet.com/] / navigation has several menus, e.g.
** [http://javascript.internet.com/navigation/expanding-menu.html Expanding Menu]
** [http://javascript.internet.com/navigation/click-to-expand-menu.html Click-To-Expand Menu]
** [http://javascript.internet.com/navigation/xp-menus.html XP Menus]
** The above use simple code, free. (some other examples may be too outdated, IE only, etc.)
 
* [http://www.howtocreate.co.uk/jslibs/script-showhidelevels Multi level menu controls]
** From [http://www.howtocreate.co.uk/ hotocreate] tutorial web site.
** free, modern multi-browser
** [http://www.howtocreate.co.uk/jslibs/ other version are available]
 
* [http://www.treemenu.net/ Tree Menu] (not tested)
* Cross-browser DHTML tree. Free version must a include a link.
 
* [http://wonderwebware.com/css-menu/ CSS Menu Generator], by Wonderware
** free software for Windows/IE5.5+ (not tested !)
 
* [http://www.zapatec.com/website/main/products/menu/index.jsp zapatec menu]
** Includes an online menu-generator
** Free version must include a link to zapatec


= Exemples =
* [http://hyperdisc.unitec.ac.nz/materials/javascript/top10/ pull down menu]
** Very simple, 3 lines of code using window.location.href


(in french mostly / en fran�ais) Vous pouvez voir une [http://tecfa.unige.ch/guides/js/slides/intro/index.htm petite présentation] (slides utilisés pour le cours [http://tecfa.unige.ch/tecfa/teaching/E72b/E72b-overview.html UV22]). <br /> Javascript est un langage de ''scripting'' qui augmente les fonctionnalit�s du langage HTML et autres formats Internet. Il offre un certain degr� d'interactivit� ainsi que quelques effets int�ressants. Ce langage a �t� d�velopp� par [/~roiron/staf14/theme.htm#net Netscape] pour �tre utilis� dans leur browser (client-side) ou au niveau serveur (server-side). Nous nous int�ressons ici au c�t� '''client''' de javascript.
=== Form validation ===


Javascript n'a rien a voir avec [http://www.sun.com/java/ Java] (le langage de Sun). Les seuls points communs que l'on peut leur trouver est leur ressemblance syntaxique et leur capacit� � d�livrer un contenu "ex�cutable" � travers le r�seau. Toutefois, on peut dire qu'ils se compl�tent relativement bien quant � leur fonctionnalit�s: javascript peut contr�ler le comportement du browser et de son contenu mais il ne permet pas, par exemple, de g�rer dynamiquement des objets graphiques, alors que java le permet.
* [http://www.dhtmlgoodies.com/index.html?whichScript=dhtml-form-validation dhtml-form-validation] (dhtmlgoodies.com). This scripts validates text inputs as you type and select boxes after something has been selected. Custom attributes on the tags are used to determine the validation process. This is very easy to use, but creates not valid HTML.


Plus concr�tement, javascript peut servir �:
* [http://phpbuilder.blogspot.com/2007/09/new-104-version-of-js-auto-form.html JS Auto Form Validator]. This easy to use script works with the naming of the form fields. E.g. name="rtFirstname" means r=required plus t=text.


* Contr�ler l'apparence et le contenu de documents HTML
* [http://javascript.internet.com/forms/regexp-validation.html RegExp Validation] by Travis Beckham at Javascript.internet.com. Elegant solution: User has to define a function that assigns property values to form elements. E.g. ''f.firstname.isAlphaNumeric = true''. Then the code validates according to these properties. It is based on [[regular expression]]s.
* Contr�ler le comportement du browser, dans une certaine mesure (par exemple, il est possible de cr�er de nouvelles fen�tre, de les fermer, ...)
* Interagir avec le contenu d'un fichier HTML, par exemple on peut compter le nombre de liens dans un fichier. Les tags des formulaires (''text'', ''checkbox'', ''button'', ...) permettent de lire ou �crire des valeurs de (et dans) ces champs
* Lire et �crire la valeur de cookies pour g�n�rer dynamiquement des pages HTML
* Faire des calculs, utiliser et traiter des variables de type ''date'', ...


* [http://tecfa.unige.ch/tecfa/teaching/staf13/biblio-overview.html Staf 13: Bibliographie de base]<nowiki>: ouverture d'une ptite fen�tre avec un ancre interne pass� en argument </nowiki>
* [http://www.softcomplex.com/products/tigra_form_validator/ Tigra form validator] A free version of SoftComplex' commercial Pro version. User has to define a JS record (associative array) and define a data structure for each form element to validated. Also quite elegant and not difficult to use if you respect the syntax of nested records.
* [ex-intro/ Exemples Javascript I]<nowiki>: Contient des exemples simples utilis�s pour introduire les notions de base. </nowiki>
* [exemples/sommaire.html Exemples Javascript II]<nowiki>: Contient entre autre les exemples les plus importants du livre de Cohen, CGI/Perl et Javascript utilis� dans le cours. (Cette page est prot�g�e par le mot de passe STAF habituel pour des raisons de copyright) </nowiki>
* [../java/tecfaman/code/ Exemples III (r�pertoire)] du Tecfa Javascript Manuel.
* La [http://www.dannyg.com/javascript/ collection] de Danny Goodman.
* [http://www.calpoly.edu/~dpopeney/javascript.html Java Script Made Easy!] (A useful collection of 123 JavaScripts with working examples and explicit directions. Topics include Mouse Tricks, User Info, Pull Down Surfing, Alerts, Buttons/Forms, Clocks And Date, Scrollers, Random Stuff and Misc)
* [http://www.livesoftware.com/jrc/index.html Live Software's]<nowiki>: resource center, quelques exemples (niveau avanc�) </nowiki>
* [http://www.trailerpark.com/phase1/jnance/answers.html about javascript, a history and primary sources] (peu d'info)
* [http://webreference.com/tools/browser/ Browser Sniffer] This JavaScript-enabled page sniffs out common browser environment variables useful for writing cross-browser scripts


=== Que peut-on faire avec JavaScript ? ===
=== Style sheet switchers ===


Il peut être intéressant d'intégrer javascript dans un [http://tecfa.unige.ch/~roiron/staf17/tabloptions.htm cursus de formation � distance] (tutoriel-web, en l'occurence pour apprendre html, ici les tableaux) . Voir aussi le [http://tecfa.unige.ch/etu/LME/9798/campos_clerc/acosfinal/htmlfiles/jeux.html travail] de 2 �tudiants (futurs enseignants) dans le cadre du cours M�dias et Informatique
Note: In Firefox you always can try manually. Menu View-&gt;Page style.


Avec JavaScript, on peut entre autres:
* [http://www.brothercake.com/site/resources/scripts/iotbs/ Invasion of the Body Switchers] by Brothercake (2006).
** Originally published in [http://www.alistapart.com/articles/bodyswitchers/ List apart] (2004).
** There is a 7-page PDF manual and HTML.


* Connaitre pr�cis�ment le [http://developer.netscape.com/docs/examples/javascript/browser_type.html browser] utilis�
=== Rollover ===
* Cr�er des questionnaires � choix multiples relativement �volu�s
** Exemple de [/~roiron/hack/questionnaire/questionnaire.htm QCM] sur les SEAT
** [/~roiron/staf2x/qcm.htm G�n�rer simplement] un qcm, sans savoir coder en javascript
* la frame de navigation de ma [http://tecfa.unige.ch/~roiron/ homepage] contient des images, dont la propri�t� ''src'' (l'adresse de l'image) varie avec le "gestionneur" d'�v�nement ''OnMousOver'' (voir �galement le logo tecfa sur ma [javascript:windowOpener('http://tecfa.unige.ch/~roiron/','http://tecfa.unige.ch/~roiron/home.htm#tecfa') homepage]
* sur ma homepage, la date est affich�e et, plus bas, un message concernant mon anniversaire; lorsque mon anni approche, le message change et fait un d�compte (le jour fatidique, ma homepage n'est plus accessible, et une autre page rappelle � tous l'importance de ce jour)
* on peut faire [http://tecfa.unige.ch/~roiron/copain.htm clignoter la page] pendant qu'elle se charge, on peut afficher l'heure qui se met � jour r�guli�rement
* une fonction qui retourne une couleur al�atoire (vachement utile ;)
* Une fonction qui retourne un nombre al�atoire entre 1 et i


On peut [javascript:ouvrir(); ouvrir une nouvelle fen�tre] sans avoir besoin de cliquer (en l'occurrence une calculatrice �crite en JavaScript) ou encore [http://www.traveling-doctor.com/docvac/FR/sommaire/ vous faire changer de site] (toujours sans cliquer ;) <br /> On peut �galement faire [http://tecfa.unige.ch/~roiron/testscrolly.htm scroller un message] sur la ''widow.status'' bar (un peu stupide) <br /> Un petit truc qui peut servir: si, dans la partie ''location ''(dans laquelle s'affiche l'URL en cours), vous tapez ''javascript:votre_fonction'', ça permet de débuguer une ligne de code. Vous pouvez par exemple essayer avec: ''javascript:alert(aujourdhui = new Date())''. Remarque: à la place de ''javascript'', on peut écrire ''mocha ''(utile pour java). <br /> On peut obtenir quelques [http://tecfa.unige.ch/~roiron/info_sur_vous.htm informations] sur votre browser et la version avec laquelle vous travaillez. <br /> J'ai réuni quelques [http://tecfa.unige.ch/~roiron/hack/ exemples de code] que j'ai produit et qui peuvent servir tel quel (cut &amp; paste) <br /> Voici un code que j'aimerais bien avoir fait: une [http://tecfa.unige.ch/~roiron/staf17/color/colortst.htm page qui vous permet de tester les couleurs] en HTML
* [http://www.howtocreate.co.uk/tutorials/jsexamples/imageHandle.html Image handling] Tutorial and code.


Comme dit plus haut, javascript ne permettrait pas, par exemple, de g�rer un programme tel qu'un [http://tecfa.unige.ch:7778/4159 interfa�age de notre moo] (alors que java le permet). Pour plus de détails concernant ces différences, voir la [http://www.irt.org/java/jvsjs.htm#1 FAQ Java] de IrtOrg
* [http://javascript-array.com/scripts/simple_rollover_button/ How to make correct rollover buttons with preload images] Tutorial and code, at javascript-array.com


=== Exemples utiles pour l'exercice de programmation STAF-14 ===
=== Cursor ===


(sans mise � jour depuis plusieurs ann�es !!)
* At Moz Dev Center:
** [http://developer.mozilla.org/en/docs/CSS:cursor CSS:cursor]
** [http://developer.mozilla.org/en/docs/Using_URL_values_for_the_cursor_property Using URL values for the cursor property]
** [http://developer.mozilla.org/samples/cssref/cursor.html examples of built-in cursors]


# [exemples/interactif.html Formulaire interactif] (version "onClick")
=== Drag and Drop ===
# [exemples/interactif2.html Formulaire interactif] (version qui interroge le formulaire)
# [exemples/createw.html Cr�ation d'une nouvelle fen�tre] (avec formulaire et une ligne de texte)
# [ex-intro/chatter-bot.html Chatter Bot] (regexp demo)


=== Exemples produits par nos �tudiants ===
* [http://www.dynamicdrive.com/dynamicindex11/domdrag/ DOM Drag and drop script] (dynamicdrive.com)
* [http://javascript.internet.com/miscellaneous/crossbrowser-drag-handler.html crossbrowser drag handler] (javascript.internet.com)
* [http://www.webreference.com/programming/javascript/mk/column2/ How to Drag and Drop in JavaScript] webreference.com tutorial + code (shows how to create sortable stacks of boxes)
* [http://luke.breuer.com/tutorial/javascript-drag-and-drop-tutorial.aspx JavaScript Drag and Drop Tutorial] by luke breuer.
* [http://www.dhtmlgoodies.com/index.html?page=dragDrop JavaScript Drag and Drop examples] information + download .


(pas mis � jour depuis qq. ann�es !!)
=== Canevas ===


* Exercice Javascript Staf-14: Voir les portefeuilles diff�rentes [http://tecfa.unige.ch/tecfa-people/tecfa-people.html#stud Promotions]
Didn't take time to find libraries. But here are a few examples, more are available from [http://developer.mozilla.org/en/docs/Category:Canvas_examples Mozilla's Canvas examples]
* [http://tecfa.unige.ch/~roiron/staf14/boire.htm Boire ou conduire] par Cyril Roiron: formulaire calcul avec instructions
* [http://developer.mozilla.org/en/docs/Code_snippets:Canvas Code snippets:Canvas] at Mozilla dev center, not too useful on April 2008.
* [http://tecfa.unige.ch/staf/staf9698/jaboulay/public_html/staf14/quest2.htm Co�t d'une voiture] par Gael Jaboulay: formulaire calcul
* [http://andrewwooldridge.com/canvas/canvasgame001/canvasgame002.html Canvas Adventure] by Andrew Wooldrige.
* [http://tecfa.unige.ch/staf/staf9698/midenet/choixanne.html L'homme de votre vie] par Anne Midenet: quiz avec images
* [http://developer.mozilla.org/samples/canvas-tutorial/6_1_canvas_composite.html canvas globalCompositeOperation] (Mozilla canevas tutorial)
* [http://tecfa.unige.ch/staf/staf9698/mullerc/17/moo0201ex01.html Moo tutorial] by Chris Muller: utilisation de JS dans un tutoriel
* [http://developer.mozilla.org/en/docs/A_Basic_RayCaster A basic ray raster] (Mozilla canevas tutorial)
* [http://tecfa.unige.ch/staf/staf9698/dago/staf14/Budfam4.html Budget familial] par Benoit Dago: formulaire calcul
* [http://tecfa.unige.ch/staf/staf9698/shubber/stafs/question2.html Questionnaire sur la Po�sie du XIX�me si�cle] par Yasmin Shubber: quiz/test
* [http://tecfa.unige.ch/staf/staf9597/pilard/kj/kjtest-bon1.html Votre profil kiwajuniorien] par Nathalie Pilard: test
* [http://tecfa.unige.ch/~roiron/ Home Page de Cyril Roiron], par exemple la barre de navigation ou l'image Tecfa au milieu de la page


Note: FF 2 and Opera implement canevas, IE 7 does not, but there is at least one emulation, e.g. [http://me.eae.net/archive/2005/12/29/canvas-in-ie/ Canevas in IE] by Emil.


[[Category:links]]
[[Category:links]]
[[Category:JavaScript]]
[[Category:Programming]]
[[fr:JavaScript]]
[[Category:JavaScript]]
[[Category:JavaScript]]

Latest revision as of 19:09, 8 April 2018

Definition

This is a short links page on JavaScript, a popular scripting language for computer programming. Only sporadically maintainted !

As of April 2014, heavy updating is needed - Daniel K. Schneider (talk) 12:46, 2 April 2014 (CEST)

Reference and Manuals

Introductions and general overviews

JavaScript Reference and manuals

  • JavaScript at Mozilla developper center (JS 1.5 plus JS 1.6, 1.7, 1.8 upgrades).
  • Core JavaScript 1.5 Guide Can be used as Tutorial for the language only. Use a JS 1.2 or JS1.3 Guide for built-in non-standardized JavaScript objects, use the DOM specs for DOM objects.
  • JavaScript 1.5 Guide (Local copy of an old Netscape version)
  • HTML 5 Working Draft - 21 April 2008. This proposal adds features to HTML and the DOM that ease the authoring of Web-based applications. Additions include the context menus, a direct-mode graphics canvas, inline popup windows, and server-sent events....

Important: The core JavaScript/JScript/Actionscript languages are defined by ECMAScript. There may be some little differences and various degrees of implementation.

  • JSLint is an online validator tool that checks a professional subset of JavaScript, a stricter language than that defined by Edition 3 of the ECMAScript Language Specification. The subset is related to recommendations found in Code Conventions for the JavaScript Programming Language. This verifier may hurt your feelings :)

Document object model (DOM)

Else please consult the Document Object Model (alias DOM) entry.

JavaScript specific DOM Reference

  • History: For older NS 4.7 browsers and non-standardized so-called DOM 0 (e.g. HTML inline, browser interfaces) you may read: JavaScript 1.3 Guide and JavaScript 1.3 Reference Guide. These are outdated, but still on of the best references on how to use the old-style "standard" JavaScript Objects.

FAQs and Short References

Specialized information and compatibility tables

Events

Front-end languages

Languages that compile into JavaScript and allow to define things in an easier way...

Tutorials and tutorial sites

Warning: Some tutorials are not very clear about what's standardized, what's obsolete and what's informal but well supported.

Beginners tutorials

  • SELFHTML Tutorial by Stephan Münz (German and French)
  • JavaScript tutorials. Videos by Bucky Roberts. Made for XHTML1. Nice for people who like videos, but somewhat outdated

General on-line tutorials

  • JavaScript tutorial. Several tutorials by Mark "Tarquin" Wilton-Jones. One of the best on-line texts I have seen. Suitable for people with some programming experience.
  • JavaScript (WikiBooks tutorial). Suitable for somewhat technical people.
  • Eloquent JavaScript A Modern Introduction to Programming by Marijn Haverbeke. A second version should be out by the end of 2014, draft parts are there as of March 2014.

old-style JavaScript

(but useful)

Forms

(more needed)

JavaScript, DOM and DHTML tutorials

Event handling

Important: Support for W3CEvent model and DOM is not the same thing necessarily. Browser support for W3C Event model is bad (e.g. IE 7 doesn't support this)

User JavaScript

DOM CSS

  • DOM CSS by Mark "Tarquin" Wilton-Jones. A tutorial about style switching.

Ajax and DHTML tutorials

JS/Ajax framework tutorials

Canvas

<canvas> is a new HTML element which can be used to draw graphics via scripting. For example, it can be used to draw graphs, make photo compositions or even perform animations. This element is part of "HTML 5", i.e. the WhatWG Web applications 1.0 specification.

JavaScript tutorials for programmers

Client-side modifications

There are browser extensions that allow a user to change behavior of web pages. The best know is Greasemonkey.

See the User-side JavaScript article for more information and an example.

Server programming with JS

  • Node.js Quoite “is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.”

Collections and links sites

General indexes

Ressource sites with tutorials and help

Sites with javascript code

This chapter should only include free code or code that is free for education. I am not against commercial ware, but this web site mainly targets poor academics and students in educational technology. - Daniel K. Schneider 16:33, 12 April 2008 (UTC).

See also tutorials above !

General developer libraries

Instead of using specific libraries, you also may use script libraries. There are advantages (single code library, quality, ...) and disadvantages (learning curve, dependency on something you don't understand, size, ...) that we should discuss here at some point. See also AJAX.

See also

Scripts and script collections

(this subcategory may need some sorting)

For programmers - both learning resource and code snippets or reusable code
Examples from books

Through the Web editor code

A list of Javascript HTMs numbers, strings and dates.L, XML, etc. WYSIWYG editors. By default, these are free. There may be better commercial but not listed solutions. Libraries listed here are all respectable, but (so far) we don't have any recommendation and features mentionned are not complete. See Comparison table and Standards schmandards 2007 for comparison.

Bigger
  • TinyMCE.
    • Is on of the more popular libraries and fairly easy to integrate and customize. Integrated in many popular CMS systems and cross-browser.
    • Used to have trouble with embedded lists (but this is maybe fixed now/ - DKS)
    • Wikipedia entry
  • FckEditor.
    • Crossplatform, XHTML 1.0, CSS, paste from Word, spell checker. Integration packs with various server-side languages.
    • Wikipedia Entry
  • Xinha, Crossplatform.
    • (DKS thinks it's the default one in the PostNuke CMS).
  • Loki.
    • Claims to be most standards compliant and encourages semantic markup.
  • WYMeditor is a web-based WYSIWYM (What You See Is What You Mean) XHTML editor).
    • Its main concept is to leave details of the document's visual layout, and to concentrate on its structure and meaning, while trying to give the user as much comfort as possible.
    • For certain applications where users ought to produce optional XHTML code, this is better than an WYSIWYG editor.
Smaller
  • HTMLBox. Cross-browser interactive open-source HTML textarea built on top of the jQuery library. Easy to use, best for smaller applications (users write smallers texts). 15KB only.
  • NicEdit. Even more lightweight than HTMLBox. Also can be used through widget code (JS is loaded from nicedit.com).

Popup and tooltip code

JavaScript/DHTML popups that are free and and work with modern browsers. While looking for 2-3 "products" I found several that didn't work properly - Daniel K. Schneider

  • Bride of Windows Popup, from Brainjar.com
    • It's actually a tutorial on how to write your on. But the code is enough mature to be used in production
    • A maybe outdated example I made is here.
  • Highslide JS Popup / thumbnails code from Torstein Honsi. Elegant solution and code.
  • openPopUps Popup code
    • Rather easy to use (besides some strange difference between div id and an argument to pass): popup contents is inserted within a div that has an id like "Div1", "Div2" etc. An onload function then should call the hideDiv function in order to hide these div's contents. Finally there is a createWindow function to call for displaying it. The fifth argument is (related?) to the id of the div.
createWindow('My Window', 400, 'brown', 1, 0, 240, 375);
  • Widget.Tooltip.js.
    • Creates small tooltips with code like this (additional options can be added):
new Widget.Tooltip({ elementId: 'myElementId', tooltipContent: 'my tooltip content' });

Menus

There is a lot of menu code. Some commercial. Some freeware seems to be of better quality and more in the spirit of modern web design, e.g. code that is based on a list and that can display without javascript or in old browsers if needed. There are a lot of free versions from commercial sites. Some of these work (and can be upgraded to a "pro" version), most include "nagware" elements, e.g. menuitems that point to their site and some are totally unusable.

The list below should be ok, but I didn't test them all - Daniel K. Schneider 16:57, 20 April 2008 (UTC).

  • Revenge of the Menu Bar A tutorial from brainjar.com. Includes good and reusable code for menus that are efficient and reliable.
    • Demo page (source included in the HTML page).
    • Menus are made with div's and classes for these divs.
    • Tested, works.
  • Cooldev.com has 2 menus
  • Tree Menu (not tested)
  • Cross-browser DHTML tree. Free version must a include a link.
  • zapatec menu
    • Includes an online menu-generator
    • Free version must include a link to zapatec
  • pull down menu
    • Very simple, 3 lines of code using window.location.href

Form validation

  • dhtml-form-validation (dhtmlgoodies.com). This scripts validates text inputs as you type and select boxes after something has been selected. Custom attributes on the tags are used to determine the validation process. This is very easy to use, but creates not valid HTML.
  • JS Auto Form Validator. This easy to use script works with the naming of the form fields. E.g. name="rtFirstname" means r=required plus t=text.
  • RegExp Validation by Travis Beckham at Javascript.internet.com. Elegant solution: User has to define a function that assigns property values to form elements. E.g. f.firstname.isAlphaNumeric = true. Then the code validates according to these properties. It is based on regular expressions.
  • Tigra form validator A free version of SoftComplex' commercial Pro version. User has to define a JS record (associative array) and define a data structure for each form element to validated. Also quite elegant and not difficult to use if you respect the syntax of nested records.

Style sheet switchers

Note: In Firefox you always can try manually. Menu View->Page style.

Rollover

Cursor

Drag and Drop

Canevas

Didn't take time to find libraries. But here are a few examples, more are available from Mozilla's Canvas examples

Note: FF 2 and Opera implement canevas, IE 7 does not, but there is at least one emulation, e.g. Canevas in IE by Emil.