Here's a list of the percentage of JavaScript features that work in each of the popular browsers. Sadly, it looks like only about 31% of the features work with both 3.0 and above browsers. I know site developers who have decided to simply not use JavaScript at all rather than mess with the compatibility issues.
August 26, 1998
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 window through window:
| window |
alert() |
Yes |
Yes |
Yes |
Yes |
|
| window |
atob() |
No |
No |
No |
Yes |
|
| window |
back() |
No |
No |
No |
Yes |
|
| window |
blur() |
No |
Yes |
Yes |
Yes |
|
| window |
btoa() |
No |
No |
No |
Yes |
|
| window |
captureEvents() |
No |
No |
No |
Yes |
|
| window |
clearInterval() |
No |
Yes |
No |
Yes |
|
| window |
clearTimeout() |
Yes |
Yes |
Yes |
Yes |
|
| window |
clientInformation |
No |
Yes |
No |
No |
|
| window |
close() |
Yes |
Yes |
Yes |
Yes |
|
| window |
closed |
No |
Yes |
Yes |
Yes |
|
| window |
confirm() |
Yes |
Yes |
Yes |
Yes |
|
| window |
crypto |
No |
No |
No |
Yes |
Available in Nav 4.04 onwards |
| window |
defaultStatus |
Yes |
Yes |
Yes |
Yes |
|
| window |
disableExternalCapture() |
No |
No |
No |
Yes |
Requires priv settings on Nav 4 |
| window |
document |
Yes |
Yes |
Yes |
Yes |
|
| window |
enableExternalCapture() |
No |
No |
No |
Yes |
Requires priv settings on Nav 4 |
| window |
event |
No |
Yes |
No |
No |
|
| window |
find() |
No |
No |
No |
Yes |
|
| window |
focus() |
No |
Yes |
Yes |
Yes |
|
| window |
forward() |
No |
No |
No |
Yes |
|
| window |
frames[] |
Yes |
Yes |
Yes |
Yes |
|
| window |
handleEvent() |
No |
No |
No |
Yes |
|
| window |
history |
Yes |
Yes |
Yes |
Yes |
|
| window |
home() |
No |
No |
No |
Yes |
|
| window |
innerHeight |
No |
No |
No |
Yes |
|
| window |
innerWidth |
No |
No |
No |
Yes |
|
| window |
java |
No |
No |
Yes |
Yes |
|
| window |
length |
Yes |
Yes |
Yes |
Yes |
|
| window |
location |
Yes |
Yes |
Yes |
Yes |
|
| window |
locationbar |
No |
No |
No |
Yes |
Requires priv settings on Nav 4 |
| window |
Math |
Yes |
Yes |
Yes |
Yes |
|
| window |
menubar |
No |
No |
No |
Yes |
Requires priv setting on Nav 4 |
| window |
moveBy() |
No |
Yes |
No |
Yes |
Requires priv setting on Nav 4 |
| window |
moveTo() |
No |
Yes |
No |
Yes |
Requires priv setting on Nav 4 |
| window |
name |
Limited |
Yes |
Yes |
Yes |
Read write in JS 1.1 |
| window |
navigate() |
Yes |
Yes |
No |
No |
|
| window |
navigator |
Yes |
Yes |
Yes |
Yes |
See navigator object for details |
| window |
netscape |
No |
No |
Yes |
Yes |
|
| window |
offscreenBuffering |
No |
Yes |
No |
Yes |
|
| window |
onblur |
No |
Yes |
Yes |
Yes |
|
| window |
ondragdrop |
No |
No |
No |
Yes |
|
| window |
onerror |
No |
Yes |
Yes |
Yes |
|
| window |
onfocus |
No |
Yes |
Yes |
Yes |
|
| window |
onload |
Yes |
Yes |
Yes |
Yes |
|
| window |
onmove |
No |
No |
No |
Yes |
Not supported on UNIX platforms |
| window |
onresize |
No |
Yes |
No |
Yes |
|
| window |
onunload |
Yes |
Yes |
Yes |
Yes |
|
| window |
open() |
Limited |
Yes |
Yes |
Yes |
Enhanced in JS 1.1 |
| window |
opener |
No |
Yes |
Yes |
Yes |
|
| window |
outerHeight |
No |
No |
No |
Yes |
Requires priv setting on Nav 4 |
| window |
outerWidth |
No |
No |
No |
Yes |
Requires priv setting on Nav 4 |
| window |
Packages |
No |
No |
Yes |
Yes |
|
| window |
pageXOffset |
No |
No |
No |
Yes |
|
| window |
pageYOffset |
No |
No |
No |
Yes |
|
| window |
parent |
Yes |
Yes |
Yes |
Yes |
|
| window |
personalBar |
No |
No |
No |
Yes |
Requires priv setting on Nav 4 |
| window |
print() |
No |
No |
No |
Yes |
|
| window |
prompt() |
Yes |
Yes |
Yes |
Yes |
|
| window |
releaseEvents() |
No |
No |
No |
Yes |
|
| window |
resizeBy() |
No |
Yes |
No |
Yes |
Requires priv setting on Nav 4 |
| window |
resizeTo() |
No |
Yes |
No |
Yes |
Requires priv setting on Nav 4 |
| window |
routeEvent( |
No |
No |
No |
Yes |
|
| window |
screen |
No |
Yes |
No |
Yes |
|
| window |
screenX |
No |
No |
No |
Yes |
|
| window |
screenY |
No |
No |
No |
Yes |
|
| window |
scroll() |
No |
Yes |
Yes |
Yes |
|
| window |
scrollbars |
No |
No |
No |
Yes |
Requires priv setting on Nav 4 |
| window |
scrollBy() |
No |
Yes |
No |
Yes |
|
| window |
scrollTo() |
No |
Yes |
No |
Yes |
|
| window |
self |
Yes |
Yes |
Yes |
Yes |
|
| window |
setHotKeys() |
No |
No |
No |
Yes |
Requires priv setting on Nav 4 |
| window |
setInterval() |
No |
Bugged |
No |
Yes |
Buggy in IE 4 |
| window |
setResizable() |
No |
No |
No |
Yes |
Requires priv setting on Nav 4 |
| window |
setTimeout() |
Yes |
Yes |
Yes |
Yes |
Leaks memory on Nav 2 |
| window |
setZOptions() |
No |
No |
No |
Yes |
Requires priv setting on Nav 4 |
| window |
status |
Yes |
Yes |
Yes |
Yes |
|
| window |
statusbar |
No |
No |
No |
Yes |
Requires priv setting on Nav 4 |
| window |
stop() |
No |
No |
No |
Yes |
|
| window |
sun |
No |
No |
Yes |
Yes |
|
| window |
toolbar |
No |
No |
No |
Yes |
Requires priv setting on Nav 4 |
| window |
top |
Yes |
Yes |
Yes |
Yes |
|
| window |
window |
Yes |
Yes |
Yes |
Yes |
|