Browser quirks and peculiarities

> history.length
netscape starts at 1, the others at 0
length is treated differently accross browsers:
- some browsers mean the total history size of a window;
- others count down when back() is executed and count up on forward().

> history.go(0)
some browsers reload page, others not (e.g. opera 5.12 not, 7.23 & IE5 do).

> window.open("","name")
when window with name exists and contents are present, this may reload the
target window as empty or leaves an existing page - just according to the browser.

 

> setting window properties status, defaultStatus
may be dangerous to set them from a parent immediately after opening another
window using window.open(): value may be overwritten when browser loads the
window contents in background and returns immediately from the open() function.

> addition operator
To increment a value which has an ambiguous type, doing + 1 may add the
literal '1' to the first operand - interpreted as string. Here, writing variable++;
ensures numeric addition (note: experiences has shown that intParse() is not
doing the job correctly in some browsers.

> booleans in conditionals
if a variable is 0 or unequal zero, should preferably be tested explicitly with
the != resp. == operators. Without using equality operators, true or false may
be dependent on existence of object.

> "Search" arguments in URL's
Netscape 4 does not accept more then one "?" in the URL.

> Programming style
Do not use wait loops. Instead make program code event-oriented. Wait loops
can cause hang-up with Netscape/Mozilla and IE. Opera tolerates wait loops.

Some useful topics/links:

Topic

URL

Browser compatibility, javascript, CSS

www.quirksmode.org

Crosswindow programming

www.infimum.dk/HTML/JSwindows.html

Windows, Frames, Timeouts etc.

www.oreillynet.com/pub/a/javascript/excerpt/jstdg_ch13/index.html