I wrote a script to do a Google query to get the lyrics of whatever
track iTunes is playing. It assembles the URL and then uses "open
location" to send it. I found that
open location theURL
doesn't do anything. But if I say
tell application "Safari" to open location theURL
it works perfectly. I'm wondering why that is. My understanding was
that the osax could be used anywhere and would open the default
application for the protocol of the URL.
Not really, no. What it does is tell the targeted application to open
that URL. There's a default handler installed by the system that will
open it in the default application for the URL scheme, but applications
can (and obviously do) override that with their own handlers. There's
actually no way to distinguish the "tell this particular application"
case from the "just open the URL using the appropriate application"
case -- you simply have to tell an application that won't have any
custom handling. As a script, "me" is pretty reliable for this purpose.