| Resources By Subject |
| Technical |
|
|
|
What works in which browser and what doesn't.
by Ciff Wootton
Scroll on down for a list of every function and which browsers they work with. (editor's note: As many of us have learned, JavaScript can be a bit of a problem if you're trying to develop something with cross-browser compatibility. This chart allows you to look up objects and see which browsers they are compatible with. Good luck.)
September 01, 1999
This is a prety long list so we have split it up over several pages. They are still a bit slow to load due to their size.
A - event
event - layer
layer - screen
screen - window
window - window
Here's a list of the percentage of JavaScript features that work in each of the popular browsers. Sadly, it seems that only about 31% of the features work with both 3.0 and above browsers. I know site developers who have decided simply not to use JavaScript at all rather than mess with the compatibility issues.
| IE 3 & 4 |
243 |
31.68% |
| Nav 3 & 4 |
373 |
48.63% |
| IE4 & NAV 4 |
425 |
55.41% |
| All 4 browsers |
240 |
31.29% |
A further caveat: This suggests areas that you should check rather than just go on my say so. Some features could get implemented at intermediate releases such as 4.04 where they weren't available at 4.03 or might be available only on certain platforms. So we are simplifying things a little when we talk about Nav 3 vs. Nav 4.
There is a Web Standards pressure group that is trying to get some groundswell of public opinion going to make Microsoft and Netscape toe the line and at least support the W3C and other published standards. They are at http://www.webstandards.org/ and are called 'The Web Standards Project'.
Here's the whole, frightening list a through event:
| Method or Property |
IE 3 |
IE 4 |
Nav 3 |
Nav 4 |
Notes |
| escape() |
Limited |
Yes |
Yes |
Yes |
Unicode supported in IE 4 |
| eval() |
Yes |
Yes |
Yes |
Yes |
Crashes Nav 2 on Win 3.1 |
| getClass() |
No |
No |
Yes |
Yes |
Used for access to Java applet classes |
| Infinity |
No |
Yes |
No |
No |
|
| isFinite() |
No |
Yes |
No |
Yes |
|
| isNaN() |
No |
Yes |
Yes |
Yes |
|
| NaN |
No |
Yes |
No |
No |
|
| parseFloat() |
Yes |
Yes |
Yes |
Yes |
|
| parseInt() |
Yes |
Yes |
Yes |
Yes |
|
| taint() |
No |
No |
Deprecated |
Deprecated |
Deprecated in Nav 4 |
| unescape() |
Limited |
Yes |
Yes |
Yes |
Unicode supported in IE 4 |
| untaint() |
No |
No |
Deprecated |
Deprecated |
Deprecated in Nav 4 |
| Functions |
| Method or Property |
IE 3 |
IE 4 |
Nav 3 |
Nav 4 |
Notes |
| apply() |
No |
No |
No |
Yes |
|
| arguments[] |
Deprecated |
Deprecated |
Deprecated |
Deprecated |
Deprecated in favour of the argvuments object |
| arity |
No |
No |
No |
Yes |
Requires language switch to select JS 1.2 for it to work |
| caller |
Deprecated |
Deprecated |
Deprecated |
Deprecated |
Deprecated - do not use |
| length |
No |
Yes |
Yes |
Yes |
|
| prototype |
No |
Yes |
Bugged |
Yes |
Bugged in Nav 3 |
| toString() |
Yes |
Yes |
Yes |
Yes |
|
| Anchor Object |
| Method or Property |
IE 3 |
IE 4 |
Nav 3 |
Nav 4 |
Notes |
| name |
No |
Yes |
No |
Yes |
|
| text |
No |
No |
No |
Yes |
|
| x |
No |
No |
No |
Yes |
|
| y |
No |
No |
No |
Yes |
|
| Applet Object |
| Method or Property |
IE 3 |
IE 4 |
Nav 3 |
Nav 4 |
Notes |
| <public fields of applet> |
No |
Yes |
Yes |
Yes |
|
| <public methods of applet>() |
No |
Yes |
Yes |
Yes |
|
| Arguments Object |
| Method or Property |
IE 3 |
IE 4 |
Nav 3 |
Nav 4 |
Notes |
| callee |
No |
Yes |
No |
Yes |
|
| caller |
No |
No |
No |
Bugged |
Bugged in Nav 4 |
| length |
No |
Yes |
Yes |
Yes |
|
| Array Object |
| Method or Property |
IE 3 |
IE 4 |
Nav 3 |
Nav 4 |
Notes |
| concat() |
No |
Yes |
No |
Yes |
|
| join() |
No |
Yes |
Yes |
Yes |
|
| length |
No |
Yes |
Yes |
Yes |
|
| pop() |
No |
No |
No |
Yes |
|
| push() |
No |
No |
No |
Yes |
|
| reverse() |
No |
Yes |
Yes |
Yes |
|
| shift() |
No |
No |
No |
Yes |
|
| slice() |
No |
Yes |
No |
Bugged |
Negative positions not available in Nav 4 |
| sort() |
No |
Yes |
Yes |
Yes |
|
| splice() |
No |
No |
No |
Bugged |
Some bugs in Nav 4 |
| toString() |
No |
Yes |
Yes |
Yes |
|
| unshift() |
No |
No |
No |
Yes |
|
| Boolean Object |
| Method or Property |
IE 3 |
IE 4 |
Nav 3 |
Nav 4 |
Notes |
| toString() |
No |
Yes |
Yes |
Yes |
|
| Button Object |
| Method or Property |
IE 3 |
IE 4 |
Nav 3 |
Nav 4 |
Notes |
| blur() |
Yes |
Yes |
Yes |
Yes |
|
| click() |
Yes |
Yes |
Yes |
Yes |
|
| focus() |
Yes |
Yes |
Yes |
Yes |
|
| form |
Yes |
Yes |
Yes |
Yes |
|
| name |
Yes |
Yes |
Yes |
Yes |
|
| onblur |
Yes |
Yes |
Yes |
Yes |
|
| onclick |
Limited |
Yes |
Yes |
Yes |
Enhanced in JS 1.1 |
| onfocus |
Yes |
Yes |
Yes |
Yes |
|
| type |
No |
Yes |
Yes |
Yes |
|
| value |
Bugged |
Yes |
Yes |
Yes |
Possibly buggy in IE 3 |
| Checkbox Object |
| Method or Property |
IE 3 |
IE 4 |
Nav 3 |
Nav 4 |
Notes |
| blur() |
Yes |
Yes |
Yes |
Yes |
|
| checked |
Yes |
Yes |
Yes |
Yes |
|
| click() |
Yes |
Yes |
Yes |
Yes |
|
| defaultChecked |
Yes |
Yes |
Yes |
Yes |
|
| focus() |
Yes |
Yes |
Yes |
Yes |
|
| form |
Yes |
Yes |
Yes |
Yes |
|
| name |
Yes |
Yes |
Yes |
Yes |
|
| onblur |
Yes |
Yes |
Yes |
Yes |
|
| onclick |
Limited |
Yes |
Yes |
Yes |
Enhanced in JS 1.1 |
| onfocus |
Yes |
Yes |
Yes |
Yes |
|
| type |
No |
Yes |
Yes |
Yes |
|
| value |
Bugged |
Yes |
Yes |
Yes |
Possibly buggy in IE 3 |
| Crypto Object |
| Method or Property |
IE 3 |
IE 4 |
Nav 3 |
Nav 4 |
Notes |
| random() |
No |
No |
No |
Yes |
Available in Nav 4.04 onwards |
| signText() |
No |
No |
No |
Yes |
Available in Nav 4.04 onwards |
| Date Object |
| Method or Property |
IE 3 |
IE 4 |
Nav 3 |
Nav 4 |
Notes |
| getDate() |
Yes |
Yes |
Yes |
Yes |
Number of digits varies |
| getDay() |
Yes |
Yes |
Yes |
Yes |
|
| getFullYear() |
No |
Yes |
No |
Yes |
|
| getHours() |
Yes |
Yes |
Yes |
Yes |
|
| getMilliseconds() |
No |
Yes |
No |
Yes |
|
| getMinutes() |
Yes |
Yes |
Yes |
Yes |
|
| getMonth() |
Yes |
Yes |
Yes |
Yes |
|
| getSeconds() |
Yes |
Yes |
Yes |
Yes |
|
| getTime() |
Yes |
Yes |
Yes |
Yes |
|
| getTimezoneOffset() |
Yes |
Yes |
Yes |
Yes |
|
| getUTCDate() |
No |
Yes |
No |
Yes |
|
| getUTCDay() |
No |
Yes |
No |
Yes |
|
| getUTCFullYear() |
No |
Yes |
No |
Yes |
|
| getUTCHours() |
No |
Yes |
No |
Yes |
|
| getUTCMilliseconds() |
No |
Yes |
No |
Yes |
|
| getUTCMinutes() |
No |
Yes |
No |
Yes |
|
| getUTCMonth() |
No |
Yes |
No |
Yes |
|
| getUTCSeconds() |
No |
Yes |
No |
Yes |
|
| getYear() |
Yes |
Yes |
Y2K bugged |
Y2K bugged |
Not Y2K compliant |
| parse() |
Yes |
Yes |
Yes |
Yes |
|
| setDate() |
Yes |
Yes |
Yes |
Yes |
|
| setFullYear() |
No |
Yes |
No |
Yes |
|
| setHours() |
Yes |
Yes |
Yes |
Yes |
|
| setMilliseconds() |
No |
Yes |
No |
Yes |
|
| setMinutes() |
Yes |
Yes |
Yes |
Yes |
|
| setMonth() |
Yes |
Yes |
Yes |
Yes |
|
| setSeconds() |
Yes |
Yes |
Yes |
Yes |
|
| setTime() |
Yes |
Yes |
Yes |
Yes |
|
| setUTCDate() |
No |
Yes |
No |
Yes |
|
| setUTCFullYear() |
No |
Yes |
No |
Yes |
|
| setUTCHours() |
No |
Yes |
No |
Yes |
|
| setUTCMilliseconds() |
No |
Yes |
No |
Yes |
|
| setUTCMinutes() |
No |
Yes |
No |
Yes |
|
| setUTCMonth() |
No |
Yes |
No |
Yes |
|
| setUTCSeconds() |
No |
Yes |
No |
Yes |
|
| setYear() |
Yes |
Yes |
Yes |
Yes |
|
| toGMTString() |
Deprecated |
Deprecated |
Deprecated |
Deprecated |
Deprecated in JS 1.2 in favour of toUTCString - Do not use |
| toLocaleString() |
Yes |
Yes |
Yes |
Yes |
|
| toString() |
Yes |
Yes |
Yes |
Yes |
|
| toUTCString() |
No |
Yes |
No |
Yes |
|
| UTC() |
Yes |
Yes |
Yes |
Yes |
Bugged in Nav 2 |
| valueOf() |
No |
Yes |
Yes |
Yes |
|
| Document Object |
| Method or Property |
IE 3 |
IE 4 |
Nav 3 |
Nav 4 |
Notes |
| activeElement |
No |
Yes |
No |
No |
|
| alinkColor |
Yes |
Yes |
Yes |
Yes |
|
| all[] |
No |
Yes |
No |
No |
|
| anchors[] |
No |
Yes |
No |
Yes |
|
| applets[] |
No |
Yes |
Yes |
Yes |
|
| bgColor |
Yes |
Yes |
Yes |
Yes |
|
| captureEvents() |
No |
No |
No |
Yes |
|
| charset |
No |
Yes |
No |
No |
|
| children[] |
No |
Yes |
No |
No |
|
| classes |
No |
No |
No |
Yes |
|
| clear() |
Deprecated |
Deprecated |
Deprecated |
Deprecated |
Deprecated - do not use |
| close() |
Yes |
Yes |
Yes |
Yes |
|
| contextual() |
No |
No |
No |
Yes |
|
| cookie |
Yes |
Yes |
Yes |
Yes |
|
| defaultCharset |
No |
Yes |
No |
No |
|
| domain |
Yes |
Yes |
Yes |
Yes |
|
| elementFromPoint() |
No |
Yes |
No |
No |
|
| embeds[] |
No |
Yes |
Yes |
Yes |
|
| expando |
No |
Yes |
No |
No |
|
| fgcolor |
Yes |
Yes |
Yes |
Yes |
|
| forms[] |
Yes |
Yes |
Yes |
Yes |
|
| getSelection() |
No |
No |
No |
Yes |
|
| handleEvent() |
No |
No |
No |
Yes |
|
| height |
No |
No |
No |
Yes |
|
| ids |
No |
No |
No |
Yes |
|
| images[] |
No |
Yes |
Yes |
Yes |
|
| lastModified |
Yes |
Yes |
Yes |
Yes |
|
| layers[] |
No |
No |
No |
Yes |
|
| linkColor |
Yes |
Yes |
Yes |
Yes |
|
| links[] |
Yes |
Yes |
Yes |
Yes |
|
| location |
Deprecated |
Deprecated |
Deprecated |
Deprecated |
Deprecated in JS 1.1 in favour of document.URL |
| open() |
Yes |
Yes |
Yes |
Yes |
|
| parentWindow |
No |
Yes |
No |
No |
|
| plugins[] |
No |
Yes |
Yes |
Yes |
|
| readyState |
No |
Yes |
No |
No |
|
| referrer |
Bugged |
Yes |
Yes |
Yes |
Broken in IE 3 |
| releaseEvents() |
No |
No |
No |
Yes |
|
| routeEvent() |
No |
No |
No |
Yes |
|
| tags |
No |
No |
No |
Yes |
|
| title |
Yes |
Yes |
Yes |
Yes |
|
| URL |
No |
Yes |
Yes |
Yes |
|
| vlinkColor |
Yes |
Yes |
Yes |
Yes |
|
| width |
No |
No |
No |
Yes |
|
| write() |
Yes |
Yes |
Yes |
Yes |
|
| writeln() |
Yes |
Yes |
Yes |
Yes |
|
This is a prety long list so we have split it up over several pages. They are still a bit slow to load due to their size.
A - event
event - layer
layer - screen
screen - window
window - window
|