Just a quick heads-up as I don't think anyone else has noted it yet:
'do JavaScript' appears to be broken in the Safari 3.0 beta
(G4/10.4.9). Example:
tell app "Safari" to do JavaScript "return 1" in document 1
returns "1" in Safari 2 but nothing in Safari 3. If this is an issue
for you, might want to file a bug report to ensure it gets fixed pronto.
...
Incidentally, is it just me, or is the Safari 3 dictionary something
of a confusing mess? While it's nice to see tabs finally supported,
what's with the separate 'document' and 'tab' classes? Why not just
make 'document' an element of the 'window' class instead of a
property (i.e. change it from a one-to-one to a one-to-many
relationship)? That would have made far more sense. Or, if the need
for backwards compatibility with older scripts makes that change
impractical, necessitating the move to a new 'tab' class, at least
hide the obsolete 'document' class, property and elements so users
aren't confused about what they're meant to use. Safari's UI is not
complicated, and designing a clean, coherent object model for it
should not be hard.