In JavaScript any list of elements returned by a DOM method is returned as a NodeList object. The NodeList object is very similar to a standard array in a lot of ways, but different enough that they can throw you for a loop if you aren’t watching what you’re doing.

In this article I am going to cover a few of the important differences between NodeLists and Arrays and several methods for solving the problems they can create.

Read more...

IceBox is a fast, lightweight, and easy to deploy alternative to the very common "Lightbox" script. It’s feature set is somewhat more limited than Lightbox’s but it more than makes up for that with it’s compact size. At just 8KB for the production version of the script you can be sure that it’s not going to slow down your page loads!

Read more...

Object orientation in JavaScript can be tricky sometimes. Being forced to refer to all variables (including objects and functions) by value instead of reference can make some tasks very tricky that would be simple in other languages.

One common example is assigning a method of an object to an event or setTimeout() only to discover that it no longer works as expected. Here I will detail a simple solution to this problem, closures.

Read more...

Website interoperability and standards compliance are touted as important features for most websites these days, but many sites still buck the trend. What is interoprability? Why, and how, should you achieve it?
In this guide I will try to give you the basic tools to make sure your site is, and continues to be, interoperable.

Read more...

Up until recently best practices dictated that most web-sites would be designed to be easily viewable at a minimum resolution of 800x600px. But that appears to be changing...

Read more...

Making sure your website is standards compliant can sometimes be a bit tricky. The problem is made worse when you rely on third party software which generates HTML you may never see.
Three major factors come into play when keeping your Joomla! site compliant and I will detail them below.

Read more...