Opera 5 and 6

Last minor update: 15 July 2003

I see Opera 5 and 6 as one intermediary browser sharply differing from both the atrocious Opera 4 and the excellent Opera 7.

Fact sheet:

Instead of releasing Opera 4.03, Opera has given its new release a new version number. Opera 5 was the first version that was completely free, as long as you put up with the ads. Since you can select your ads preferences yourself, this just may be a good idea and people may actually like the browser. Of course, you can still pay to get rid of the ads.

It almost seems as if someone from Opera has viewed my bug list for Opera 4, most issues have been solved. In addition the JavaScript error messages have become better, actually giving a clue as to what's wrong. Line numbers have been implemented in 5.02, but they don't seem to follow the lines of the HTML document yet. So some progress has been made, but lots more needs to be done.

A year later Opera upgraded to 6. Although I'm not entirely sure if a new major version was called for, Opera 6 is better than 5. The user interface has been upgraded, it is now also possible to use multiple windows, as most other browsers do. You can also stick to the old way and keep all Opera windows in one. In my opinion the design is much more 'Maccy' (not a bad thing).

Iframes in layers

Though Opera 6 supports iframes and allows JavaScript access to them, they don't work well within layers. When I used a lot of visible/hidden layers and one of them had an iframe, the iframe was initially visible, even though the layer it was in was hidden. Besides, all of a sudden Opera refuses to access the iframe, even though without layers it works fine.

JavaScript

The minor security bug that I found in Opera 4 has been solved in Opera 5.02 . Now it is as safe as Netscape 6: you cannot read out or change anything in frames or windows that contain pages from another server.

Opera 5 once again recognizes NAME's of form fields, so form validating scripts work once again. Sensible decision! It can handle my example Window manipulation script. Also Opera 5 supports a lot more inline event handlers than before.

It even focuses on a popup, something Opera until now steadfastily refused to do. However, versions before 5.12 had an obscure error that made them crash on the View Location link in my direct writing example. I filed a report on this bug, it has disappeared.

In addition, Opera has added a very handy property that allows you to detect Opera 5 with 100% certainty:

if (window.opera)
	// browser is Opera, do something

Does not work in lower Opera versions, but it's very useful in separating Opera from other W3C DOM compatible browsers.

Although Opera 5 supports the W3C DOM and neither of the proprietary ones, it should be clear that it doesn't support the entire W3C DOM, but only enough to offer DHTML access to web developers. Its DHTML functionality is now somewhere in between Netscape 4 and Explorer 4. For Opera, this is a major step forward. Better still, everything seems to actually work without fuss.

Opera 5 JavaScript bugs

Opera 6

Two excellent JavaScript improvements in Opera 6 are the inclusion of window.print(), so that programmatically printing a page is now possible, and the support of all offset properties (see the Window manipulation page for more information).

Further testing proved that general event handlers (like document.onmousedown = functionname;) are present in Opera 6 and have been integrated earlier (I haven't been paying enough attention to say exactly in which version). Strangely the Image protection does not work correctly: the script fires only on a normal single left click, which is the only kind of click that should be allowed. I'm not yet sure if this is an Opera bug or my mistake.

The visibility bug (value was upper case) was solved in 6. Unfortunately external JavaScript files are still not refreshed when you hit Reload. You still have to use the workaround outlined above.

Opera 6 does recognize hashes in links, but only when you use [link element].hash. It doesn't turn up in [link element].href. Still buggy.

Opera has clearly taken much trouble to make its browser more Microsoft compatible. Support for the document.all DOM has been added and also in event handling Opera 6 supports many Microsoft property names (though also the W3C ones).

CSS

Style sheet support is excellent, as usual, although Opera 5 and 6 still don't support clip. This is high on my personal wish list because it's the only important style declaration from the Version 4 browsers that's still missing.

See the Opera Omnibus for some nice Opera-only CSS bugs.

Mac

As said before, Opera is busy extending itself to other operating systems than Windows. Beta 5 of the Mac version has been released.

Opera on Mac was the first release to support general event handlers so that my image protection script worked fine. Unfortunately this has changed in beta 5: the script now only works on a left-click, while that should be the only case in which it should not work. I'm not yet sure if this is my fault or a browser bug.

The focus problems with form fields have been fixed and the Date and time bug that made Opera run one hour in advance of system time is gone, too (though daylight saving time may also be involved, and my previous test was in summer).

On the other hand the eternal problem of Dynamic options have not been solved yet: now the script works but you have to hide the select box before the changes take effect.

CSS: All text is being displayed smaller than the CSS definition calls for. (It has been argued that this is in fact a correct implementation of the W3C pixel definitnion. I think this is indeed the case, but that Opera nonetheless has to conform itself to the other browsers, since it should support the de-facto px definition.)
I have the feeling that this problem is being addressed, the text seems to be larger than in the previous beta.

Unfortunately the release of Safari caused Opera to cut back on its Mac activities. It seems Opera 6 will be the last Mac release.

Linux

In general the Linux beta still has the minor bugs the Windows version used to have (like not allowing a focus on a popup).

Opera 6 Linux has one strange bug: my Banner rotation script works much too fast: banners are being switched several times per second. Obviously this should be a setTimeout() problem, but it isn't (at least, not a simple one), since my Sticky menu script, which also heavily relies on timeouts, works fine. Strange case...