• Categories



  • Archives

  • Dynamic form elements and Internet Explorer 6

    Published September 12th, 2008

    A few brief entries from the ‘tiny yet annoying bugs that take far too much time to fix’ file…

    I’m creating forms dynamically using JavaScript. This has led to a number of problems with IE6:

    Dynamic checkboxes/radio buttons and the ‘checked’ attribute

    When creating a field, I wanted to be able to apply a ‘default’ value — for example, a checkbox element might be ticked by default. This was all going smoothly until (guess what?) I tested it on IE6: the checked attribute was set, and returned ‘true’ when tested, but the box did not appear to be checked when it appeared in the form.

    The answer, as I discovered thanks to this forum post, was to use the ‘defaultChecked’ attribute instead (I set both, just in case). It seems to work across browsers, which is nice. Oh, and this applies to radio buttons as well as checkboxes.

    Creating radio buttons

    While we’re on the subject of radio buttons, I also found that IE6 doesn’t like radio buttons created using document.createElement() (i.e. as a DOM object). It’ll render them OK, but they’re unclickable. The answer is to create them by injecting HTML into an element with [element].innerHTML:

    var obj = document.createElement( ’span’ );
    obj.innerHTML = ‘<input type=”radio” name=”somefield” value=1>1′;

    …and so forth. Ugly.

    Assigning values to multiple select elements

    This was a really fiddly one, and seems to happen under only very particular circumstances. Anyway…

    If you create a select element and set the ‘multiple’ attribute, IE6 can sometimes have trouble assigning values to it if you do it immediately after it’s created. Note the word ’sometimes’: I haven’t been able to create a simple enough test case to isolate the exact circumstances that are required. And it’s only a problem if you’re setting more than one value.

    Anyway, the (horrible) fix is to delay setting the values using setTimeout(). The delay doesn’t matter (1 millisecond will do), but it does work.

    I hope these notes help some other unfortunate soul out there avoid wasting the number of hours and brain cells that I just have!

    Google Chrome: My two penn’th

    Published September 3rd, 2008

    OK, everyone’s talking about Google’s ‘new’ browser (check out the comic for an easy introduction) and everyone’s going to have an opinion. Here’s mine, based on a few hours’ use.

    First (and lasting) impression: damn, it’s fast. It starts fast, it renders pages fast, it stays fast. JavaScript in particular is noticeably smoother where in other browsers it has lagged. The latter is thanks to the new V8 JavaScript engine, the rest is at least partly related to the memory model, where each tab is a completely separate process. Given that it’s using WebKit — the renderer behind Safari — the speed difference between the two is striking.

    And to be honest, as far as the ‘wow’ factor goes, that’s about it for me. It’s a browser. The minimalist layout is nice but in fact I’ve been doing myself with Firefox for a couple of years now. Oh, the tabs are at the top…ok. The address bar is ‘clever’…well I don’t particularly like FF3’s ‘Awesomebar’, and I’ve yet to see anything that this does that is likely to make me like it any better. The start page’s layout is very reminiscent of Opera, which isn’t necessarily a bad thing — I might well grow to like it.

    But none of the above constitutes a ‘major breakthrough’ or ‘a paradigm shift in the browser space’. It’ll be interesting to see how it develops, though. Maybe the behind-the-scenes, technical advances (esepcially the speed) will feed back into other browser projects. As it stands, it’s just yet another platform to test for incompatibilities.

    But…the speed! I can see myself using it as a day-to-day browser for non-development purposes, just because it’s so quick to launch.

    MooTools: converting from 1.1x to 1.2

    Published July 28th, 2008

    More of a reminder for myself than anything: here’s a simple changelog that could be of use when updating scripts to MooTools 1.2.

    Multiple file uploader: Mootools 1.2 version

    Published July 21st, 2008

    Just a quick heads-up for those who’ve been complaining about the MooTools version of the multiple-file uploader not working with MooTools 1.2 — it’s now been updated. The widget required three small modifications due to changes to MooTools’ syntax.

    Get the modified code here (old 1.1x-compatible version also included).

    Making Firebug even better…

    Published July 9th, 2008

    …yes, I know, I go on about Firebug a bit.

    OK, a lot.

    But good as it is it can still be improved, as this list of Firebug extensions proves. There were several on the list that I hadn’t heard of before and have already installed.