An Ode to Javascript

The language that made the machine talk to us

Welcome to our little treasure grove stuffed with scripted gems, developed and designed to utilize the power of Javascript to its full potential, while at the time degrading nicely and errorfree on machines where Javascript has been restricted or just disabled. Has it ever been different? It may seem the interest of nerds and other rabble, but Javascript is known to run mission critical functions at computers controlling power plants, and it won't be long until you add an onmouseover event handler to your correspondence.

What ’s in a language?

The list of Reserved Javascript Words is a clear illustration of the mutual approach of human language and computer code. We 're talking to the machine in a vocabulary somewhere between our own and the bits and bytes, and why not? Computers are made by humans.

Development of online technologies is expected to remain violent for the forseeable future, but it seems that since its introduction Javascript has kept the closest connection between the source and the experience, the author and the user. Applets, Flash, vectors all attempt to bring the content to life, but kill it in the process. Creating such programs requires very specific knowledge and tools, software that costs money, and search engine bots can't or won't index them!

The web to be accessible, must be a text-based web. There is a place for binary files, plugins and multicultimedia, but in the end the communication is between humans. Human code is readable code. Javascript is usually slower in operation than most alternative options, but this is easy to forgive and understand. It is downloaded as uncompressed as this very text, and all interpretation of the code statements, the setting of the actual switches, is left to the final stage. Once set, the possibilities of interaction with the page, the browser and the user are endless.

Javascript brings life to existing content, to raw text and HTML that every entity—from braille reader to search engine bot—has access to, without taking anything away. It is the natural extension. However, as all good things, it can be abused and misused, and mistakes are easily misunderstood, and sometimes lead to great frustration on the world wide wasp nest, the end user perspective must prevail, the aim must be clearly articulated and caution is advised. Integrity adds beauty to numbers and scripts alike.

Some scripts

These pages offer a few scripts which may help combine the useful with the inevitable. They are not all the libraries or factories or cut-and-paste scripts found at other sites, but perhaps a mixture trying some concepts and sparkling some ideas about solution-orientated coding. The eye of the beholder is teased and tested.

OthercaveNo title 1.14 KB23 Oct '09
OtheractivexAbout ActiveXHow to deal with ActiveX controls on the web5.84 KB13 Sep '12
FormaddoptionAdd-an-optionHow to fill select lists with dynamically created options8.16 KB13 Sep '12
TimingalarmAlarmHow to keep an eye on time2.25 KB13 Sep '12
TiminganimationAni-mateHow to animate at varying speeds2.43 KB13 Sep '12
BasicarrayArray functionsStandard and advanced array functions21.50 KB13 Sep '12
MathaverageDraw-a-curveHow to draw average curves in Javascript5.09 KB13 Sep '12
MathcalculatorCalculate…How to perform calculations the practical way6.24 KB13 Sep '12
TextcamelcaseCamelCaseHow to convert to and from camelCase6.25 KB13 Sep '12
BeautifulclipAdam clippedInteractive demonstration of the CSS clip property9.85 KB13 Sep '12
MousetailclockAnalogue clockAn analogue clock follows the mouse7.88 KB13 Sep '12
MousetailcometsThe comets comeEvade the comets that come after the mouse11.49 KB13 Sep '12
DynamiccontextmenuDouble your contextmenuHow to combine a scripted contextmenu with the default12.15 KB13 Sep '12
MathconvertConversion of measurementsConvert any measurement, however large, light or deep27.31 KB13 Sep '12
MathconvertromanRoman Number ConvertorA small but fast and handsome conversion utility9.80 KB13 Sep '12
MathconverttemperatureCold ConversionHow to convert Celsius and Fahrenheit and the like4.08 KB13 Sep '12
BeautifulconwayLife according to ConwayHow to script a cellular automaton16.90 KB13 Sep '12
TimingcountdownThe countdownHow to count down using setTimeout3.28 KB13 Sep '12
MathcurveCurveOnline tool for producing spiral and other curved forms4.92 KB13 Sep '12
OtherdogearNo title 5.19 KB13 Sep '12
DynamicdraggableDrag-a-tagHow to drag elements around the page4.20 KB13 Sep '12
MousetailelasticJump, stretch, bounceA spectacular mousetail, with strings attached6.69 KB13 Sep '12
TextencryptKey to encryptionHow to encrypt text messages using a unique key4.55 KB13 Sep '12
BasicerrorSyntax and errorsHow to make use of errors at runtime3.94 KB13 Sep '12
MousetaileyesEyesA pair of eyes keeps a close watch on your mouse5.90 KB13 Sep '12
MathfactorFactor-that-numberHow to find a number's factors and prime factors2.36 KB13 Sep '12
MousetailfeatherBlow-a-featherA feather flies on the wind in this elegant mousetail3.67 KB13 Sep '12
UsefulfilereadRead-a-fileHow to access the local Windows file system22.07 KB13 Sep '12
UsefulfilewriteWrite-a-fileHow to write to local files on Windows from Javascript10.39 KB13 Sep '12
UsefulfontView-a-font 14.51 KB13 Sep '12
FormformCheck-a-boxHow to check ranges of checkboxes6.48 KB13 Sep '12
MathgradientGradientHow to calculate a range of values8.18 KB13 Sep '12
TexthiliteHighlight-a-textHow to highlight text the fast way8.24 KB13 Sep '12
DynamicimageswapSwap-an-imageHow to swap images2.60 KB13 Sep '12
DynamicimagewizardImage viewerOnline tool for examining images3.94 KB13 Sep '12
BasicjscriptJScript or JScript?Standard and advanced array functions2.93 KB13 Sep '12
BeautifullifeGame of Script of LifeHow to script a cellular automaton16.26 KB13 Sep '12
OthermenuNo titleHow to build a menu 6.66 KB13 Sep '12
Dynamicmenu1Revenge of the Menu BarHow to build a menu from a list18.10 KB13 Sep '12
OthermerlinAgent Merlin 7.00 KB13 Sep '12
BeautifulmoonThe moon todayThe moon displayed in its various phases5.41 KB13 Sep '12
BasicmousepositionPosition that mouseHow to detect the location of the mouse across browsers2.92 KB13 Sep '12
MousetailmousetailIt 's all in the tailA simple straightforward mousetail2.17 KB13 Sep '12
MathnumberformatNumbers formattedHow to code advanced number notation methods3.04 KB13 Sep '12
TextnumbertowordNumber to wordHow to write out numbers into words6.80 KB13 Sep '12
BasicoptimizeLoop optimizationHow to make a script do the same thing twice as fast11.35 KB13 Sep '12
MousetailorbiterOrbitersShiny happy colours swirling around the mouse5.09 KB13 Sep '12
TableperiodictablePeriodic Table of The ElementsInteractive Periodic Table of the Elements28.01 KB13 Sep '12
MathpiPi for the webThe first 10000 digits of pi14.42 KB13 Sep '12
DynamicplodePlode!How to shatter an element into a million pieces3.47 KB13 Sep '12
FormreadurlRead-an-urlHow to load remote content into a page6.85 KB13 Sep '12
BasicrefWelcome to the machineIntroduction to objects, properties and methods20.02 KB13 Sep '12
TextregexRegular Expressions explainedAn overview of the Javascript RegExp object17.07 KB13 Sep '12
UsefulregextestRegex tester 1.87 KB13 Sep '12
TextreverseReverse-a-txetHow to write backwards2.27 KB13 Sep '12
DynamicriderMoving text coloursHow to make letters have multiple colours1.83 KB13 Sep '12
DynamicrightclickmenuRightclick menuHow to build a custom contextmenu3.31 KB13 Sep '12
Textrot13Rot13Rot13 under the loop8.13 KB13 Sep '12
TextscrambleScramble a wordHow to mix letters inside words4.20 KB13 Sep '12
OtherscrollableExampleabout 200 characters, 25 words1.72 KB13 Sep '12
DynamicscrollbarGet the scrollbar widthHow to measure the size of the GUI scrollbars4.44 KB13 Sep '12
TextselectSelected elementsHow to select text the cross-browser way9.98 KB13 Sep '12
UsefulshellPop the shellThe Popup method of the WScript.Shell object14.24 KB13 Sep '12
FormsliderSliderHow to create a functional slider element7.00 KB13 Sep '12
Otherslider2Windows’ own sliderHow to implement a native Windows slider control7.62 KB13 Sep '12
BasicsnipsBits and piecesA collection of code fragments9.98 KB13 Sep '12
DynamicsolarsystemSolar System ScriptHow to navigate the universe2.59 KB13 Sep '12
BasicspellcheckCheck that spellHow to have MS Word check the spelling of a webpage2.10 KB13 Sep '12
BeautifulstarfieldStarfieldHow to fly through interstellar space4.36 KB13 Sep '12
BasicsubstringA string within stringsAn introduction into the substring method of strings8.41 KB13 Sep '12
MousetailswirlSwirling galaxyA swirling mousetail6.87 KB13 Sep '12
DynamictabTab-a-pageHow to create an interface of tabs13.65 KB13 Sep '12
TabletableableTable abilityHow to selectively allow actions in tables3.71 KB13 Sep '12
TabletablehiliteRows across tablesHow to highlight rows in multiple tables simultaneously13.15 KB13 Sep '12
TabletablescrollSort ‘n ScrollHow to fix table headers and sort rows by column25.39 KB13 Sep '12
TabletablesortSort ‘n’ ScrollHow to sort table rows by column and fix the headers6.03 KB13 Sep '12
TabletablesumSum-a-columnHow to display calculated cell contents in tables5.84 KB13 Sep '12
FormtelraamTelraamEen eenvoudig doch flexibel telraam4.08 KB13 Sep '12
OthertempNo title 76.73 KB13 Sep '12
FormtextareaLine ’em upHow to number lines in a textarea4.24 KB13 Sep '12
DynamictextarearesizeResizable textareaHow to make a textarea resizable3.27 KB13 Sep '12
DynamictextlikeTest a textHow to draw match text with a margin1.05 KB13 Sep '12
DynamictocA table of contentsHow to build a table of contents from heading elements7.24 KB13 Sep '12
TimingtypeVarying variable typesHow to convert types in the fast lane3.35 KB13 Sep '12
TextunescapeEscape► How to write escaped characters1.45 KB13 Sep '12
DynamicwebWeave-a-webHow to draw curved and really complex shapes2.05 KB13 Sep '12
UsefulwindowBrowser sizeHow to measure various window sizes3.35 KB13 Sep '12
TimingworldclockWorldclockAll the time in the world5.87 KB13 Sep '12
UsefulxbmBeaMBrowser-based XBM image editor31.41 KB13 Sep '12
OtherxdomainrequestNo title 1.93 KB13 Sep '12
BasicxmlhttpRequesting XMLHttpHow to load remote content into a page23.84 KB13 Sep '12


Putting it in context.