[thelist] How do I know if a piece of JS is DOM or browser specific?

Peter-Paul Koch gassinaumasis at hotmail.com
Tue Oct 15 17:24:01 CDT 2002



> >> I'm trying to learn how to play with the DOM, but I want to avoid
> >> any browser specific stuff and code "W3C" DOM.
> >
> > For the moment you cannot ignore browser specific stuff, or your
> > sites won't work in Netscape and Explorer 4.
>
>I have the luxury of not caring :-)
>
>The site I am working on is a personal just for myself, and will be
>XHTML served as application/xhtml+xml which means that even IE6 won't
>even be able to handle it, nevermind earlier browsers.

That *is* a luxury. Very well, you don't need the browser specific DOMs.

> > If they work in all browsers they're valid.
>
>'all browsers'?  I'm sure this means that you have to choose what subset of
>browsers you are going to support/test on...

Depends. In a narrow sense, yes, of course you're right. However, see below
for more remarks. Besides, graceful degradation of JavaScript functionality
is an important principle, too.

>What about Mozilla 2, Internet Explorer7?  Opera 8?  Konqueror 5?

We'll deal with them when they are released.

>My idea was to start learning the "standards" so as to not end up with the
>javascript equivalent of using tables for layout, only to have to un-learn
>bad habits later.

This is not an exact comparision. Take forms, for instance. In the newest
browsers you can access a form by

document.getElementById('form_id')

and your form validation script will work. However, this is not the best way
to access forms. Simple form validation *can* work in Netscape 2, and
therefore, in my opinion, *should* work in Netscape 2. This means that you
have to use the old Level 0 DOM

document.forms['form_name']

In general you should use the Level 0 DOM (the one that Netscape
standardized before W3C existed) whenever possible. This is the best way to
program JavaScripts.

>
> > There is no validator or such for JavaScript, thank God.
>
>Well I figgered as much... suppose it would be pretty hard to do.  The nice
>thing about the validator is that you can say "Hey, I wrote this to the
>standards, it's your browser that's broken."

Having said that, you still need to code a workaround if, for instance, IE's
implementation is broken.

If JavaScripting is purely a hobby for you, you don't need to bother about
this, of course, but I will never officially recommend this practice <g>.

>Since my primary browser is Opera, I'm also trying to figure out where it
>needs to improve its support for JS/EMACScript/DOM.

It needs to be able to redraw pages without reloading them. Understanding
the Opera 7 pre-publicity correctly, it will support exactly this.

> > I think you should start with a simple JavaScript book. First get the
> > basics, don't worry too much about the DOM. Then, when you can write
> > simple scripts, go on to more complex things like DHTML, and only
> > then tackle the W3C DOM.
>
>Given the above, is that still your recommendation?

Yes(ish).

>Most of the examples I've seen are of the type:
>
>"Ok, now if you want to do X, you do A for NN4, B for IE4, C for IE5, and D
>for all others."

When dealing with DHTML in the Version 4 browsers, yes, this is the way to
go about it.

Maybe it would be best for you to stick to the W3C DOM and the Level 0
(Netscape) DOM and forget about intermediate stuff like document.all and
document.layers . Don't forget about Level 0, though. It's much simpler than
the W3C DOM and not using Level 0 where you could use it is bad coding
practice, in my opinion.

>That said, if there are good JS books that teach principles, etc, I'd love
>to hear what they are... searching for "DOM" in Google can be
>inefficient at best and.... err.... um... surprising, shall we say, at
>worst.... suffice it to say I've familiarized myself on how to tell
>Google to /exclude/ some things from search results :-)
>
>What would you consider a good 'simple JS book'?

The problem is that simple JS books aren't written for your situation but
for people who want to learn JavaScript in a hurry to code sites for money,
which means cross-browser compatibility goes before anything else.

I recommend the Glasshaus book, "Practical JavaScript for the Usable Web" by
Wilton, Williams and Li. It strikes the right balance between theoretical
and practical information.

ppk

_________________________________________________________________
Get a speedy connection with MSN Broadband.  Join now!
http://resourcecenter.msn.com/access/plans/freeactivation.asp




More information about the thelist mailing list