You mentioned jQuery which I'm less familiar with but for general reference, and specifically with Prototype, one thing to watch out for is reserved words / method names in IE. I know what often gets me is things like:
someElement.appendChild(new Element('label',{ **for**: someInput.id }).update( someLabelText );
(new Element(tagName, propertyHash) is how new elements are created in Protitype). In IE, for:
must be 'for':
, because for
is a reserved word. Which makes complete sense -- but FireFox will tolerate this.
Another example:
someElement.wrap('div').addClassName('someClass')
(the wrap
method in Prototype wraps one element in another) -- In IE, on textareas, wrap
is a property, and Element.wrap()
must be used instead of the methodized version
These are two examples which come to mind from my experience. They're based on prototype but the core issue isn't: Watch out for any methods/labels/identifiers which IE considers reserved words but FireFox or Safari will tolerate.