Today I released the first version of OPod (Cue cease and desist letters from Apple). James has the scoop.
I think I’m going to make this the first of a series of posts releasing widgets I’ve developed as parts of other projects.
Things I didn’t know before starting this:
- Firefox allows frames embedded to a maximum depth of 8 levels.
There’s a much more elegant way of coding this up if you can embed frames within each other to an arbitrary depth. However, to stop crashes caused by infinitely recursing frames, the Firefox developers decided to disallow frames embedded in 9 other frames. How did they choose this arbitrary number? Beats me. Am I the first to come across a useful scenario for embedding more than 8 frames? (IE seems to have no limit.)
- Navigating within multiple dynamically created iframes does something weird to the Firefox history list. (Still under investigation)
- An iframe with no src adds a new item to Firefox’s history list but not to IE’s.
- Overflow:scroll gets you mandatory scrollbars but overflow:auto only puts them in when the div actually overflows.
- Scrolling divs have no scrollTo method. But you can set their scrollLeft and scrollTop properties to achieve the same effect.
- You can set the rows and cols attributes of a frameset dynamically! (though I didn’t use this)
- This works:
var head = document.getElementsByTagName("head"); var link = document.createElement('link'); link.rel = 'stylesheet'; link.href = 'style.css'; head.appendChild(link);
And finally, a plea to browser makers:
In your next version, please support some kind of ContextAgnosticXMLHttpRequest (and come up with a better name while you’re at it). There’s a lot of client processing power going to waste right now while the server churns away fetching XML and transforming it one way or the other.