5 Send URL: Opening a Web Browser
for opening a URL
in the user’s chosen web browser.
See also browser/external, which requires
racket/gui, but can prompt the user for a browser if no
browser preference is set.
Opens str, which represents a URL, in a platform-specific
manner. For some platforms and configurations, the
separate-window? parameter determines if the browser creates
a new window to display the URL or not.
On Windows, send-url normally uses shell-execute
to launch a browser. (If the URL appears to contain a fragment, it may
use an intermediate redirecting file due to a bug in IE7.)
On Mac OS X, send-url runs osascript to start the
user’s chosen browser.
On Unix, send-url uses a user-preference, or when none is
set, it will look for a known browser. See the description of
external-browser for details.
The url string is usually escaped to avoid dangerous shell
characters (quotations, dollar signs, backslashes, and non-ASCII). Note
that it is a good idea to encode URLs before passing them to this
On all platforms, external-browser parameter can be set to a
procedure to override the above behavior — the procedure will be
called with the url string.
Similar to send-url
, but accepts a path to a file to be
displayed by the browser. Use this function when you want to display
a local file: it takes care of the peculiarities of constructing the
URL, and uses send-url
the file. If you need to use an anchor fragment or a query string,
use the corresponding keyword arguments.
Similar to send-url/file
, but it consumes the contents of a
page to show, and displayes it from a temporary file.
If delete-at is a number, the temporary file is removed after
this many seconds. The deletion happens in a thread, so if racket
exits before that it will not happen — when this function is called
it scans old generated files (this happens randomly, not on every
call) and removes them to avoid cluttering the temporary directory.
If delete-at is #f, no delayed deletion happens, but
old temporary files are still deleted as described above.
A parameter that can hold a procedure to override how a browser is
started, or #f to use the default platform-dependent command.
On Unix, the command that is used depends on the
'external-browser preference. If the preference is unset,
send-url uses the first of the browsers from
unix-browser-list for which the executable is found.
Otherwise, the preference should hold a symbol indicating a known
browser (from the unix-browser-list), or it a pair of a prefix
and a suffix string that are concatenated around the url string
to make up a shell command to run. In addition, the
external-browser paremeter can be set to one of these values,
and send-url will use it instead of the preference value.
Note that the URL is encoded to make it work inside shell double-quotes:
URLs can still hold characters like #, ?, and
&, so if the external-browser is set to a pair of
prefix/suffix strings, they should use double quotes around the url.
If the preferred or default browser can’t be launched,
send-url fails. See get-preference and
put-preferences for details on setting preferences.
is a valid browser preference,
otherwise. See external-browser
A list of symbols representing Unix executable names that may be tried
in order by send-url
. The send-url
internally includes information on how to launch each executable with