I've checked and this technique works in Mozilla 1.2 as well as IE, so its probably a good idea to always write bookmarklets in this way.
Advantages: you can change/update the code without existing users having to upgrade. Disadvantages: requires that extra network hit, so is probably only useful for more complex bookmarklets.
However because there is a network round-trip, you could do some funky things with cookies. E.g. allow the script to store data on the remote server (assuming the user wants to, and its not sensitive). This data could be used to affect the client-side processing.
Might be an interesting way to allow a bookmarklet to be customised by the user (download the custom parameters, etc in a cookie) or allow multiple users to interact: server can collect data from all users, and then 'broadcast' it back when the script/cookie is pulled again. Might be possible to build collaborative click-streams this way. Using it as an annotation mechanism is another obvious idea.
- Bob Jones registered at MyBookPreferences.com, and stores along with his profile, his preferred online bookstore (which may include his library)
- Bob then drags the "BookRedirect" bookmarklet to his browser toolbar
- Bob then browses the web, reading his favourite blogs. On one blog he finds a number of links to books that he's interested in, and may like to buy.
- Bob clicks his BookRedirect bookmarklet.
- Bob then clicks the inline links to purchase the book.
This seems pretty straight-forward to me and is a taster of the power of this technique.