blob: 285fcf5582af21ab8d092090d98634aba1bddf9d [file] [log] [blame]
Fred Drakee4dbb862000-07-07 03:36:12 +00001\section{\module{webbrowser} ---
2 Convenient Web-browser controller}
3
4\declaremodule{standard}{webbrowser}
5\modulesynopsis{Easy-to-use controller for Web browsers.}
6\moduleauthor{Fred L. Drake, Jr.}{fdrake@acm.org}
7\sectionauthor{Fred L. Drake, Jr.}{fdrake@acm.org}
8
9The \module{webbrowser} module provides a very high-level interface to
10allow displaying Web-based documents to users. The controller objects
Eric S. Raymondf79cb2d2001-01-23 13:49:44 +000011are easy to use and are platform-independent. Under most
12circumstances, simply calling the \function{open()} function from this
13module will do the right thing.
Fred Drakee4dbb862000-07-07 03:36:12 +000014
15Under \UNIX, graphical browsers are preferred under X11, but text-mode
Fred Drakef6791f32000-10-02 03:42:43 +000016browsers will be used if graphical browsers are not available or an X11
Fred Drakee4dbb862000-07-07 03:36:12 +000017display isn't available. If text-mode browsers are used, the calling
18process will block until the user exits the browser.
19
Eric S. Raymondf7f18512001-01-23 13:16:32 +000020Under \UNIX, if the environment variable \envvar{BROWSER} exists, it
Eric S. Raymondf79cb2d2001-01-23 13:49:44 +000021is interpreted to override the platform default list of browsers, as a
Eric S. Raymondf7f18512001-01-23 13:16:32 +000022colon-separated list of browsers to try in order. When the value of
23a list part contains the string \code{\%s}, then it is interpreted as
24a literal browser command line to be used with the argument URL
Eric S. Raymondf79cb2d2001-01-23 13:49:44 +000025substituted for the \code{\%s}; if the part does not contain
Eric S. Raymondf7f18512001-01-23 13:16:32 +000026\code{\%s}, it is simply interpreted as the name of the browser to
27launch.
28
Fred Drakee4dbb862000-07-07 03:36:12 +000029For non-\UNIX{} platforms, or when X11 browsers are available on
30\UNIX, the controlling process will not wait for the user to finish
31with the browser, but allow the browser to maintain its own window on
32the display.
33
34The following exception is defined:
35
36\begin{excdesc}{Error}
37 Exception raised when a browser control error occurs.
38\end{excdesc}
39
40The following functions are defined:
41
Eric S. Raymondf79cb2d2001-01-23 13:49:44 +000042\begin{funcdesc}{open}{url\optional{, new=0}\optional{, autoraise=1}}
Fred Drakee4dbb862000-07-07 03:36:12 +000043 Display \var{url} using the default browser. If \var{new} is true,
Eric S. Raymondf79cb2d2001-01-23 13:49:44 +000044 a new browser window is opened if possible. If \var{autoraise} is
45 true, the window is raised if possible (note that under many window
46 managers this will occur regardless of the setting of this variable).
Fred Drakee4dbb862000-07-07 03:36:12 +000047\end{funcdesc}
48
49\begin{funcdesc}{open_new}{url}
50 Open \var{url} in a new window of the default browser, if possible,
Fred Drake53d285a2001-07-19 03:49:33 +000051 otherwise, open \var{url} in the only browser window.
Fred Drakee4dbb862000-07-07 03:36:12 +000052\end{funcdesc}
53
54\begin{funcdesc}{get}{\optional{name}}
Eric S. Raymondf7f18512001-01-23 13:16:32 +000055 Return a controller object for the browser type \var{name}. If
56 \var{name} is empty, return a controller for a default browser
Eric S. Raymondaeb55322001-01-23 13:22:28 +000057 appropriate to the caller's environment.
Fred Drakee4dbb862000-07-07 03:36:12 +000058\end{funcdesc}
59
Fred Drake246f65f2000-10-23 15:41:13 +000060\begin{funcdesc}{register}{name, constructor\optional{, instance}}
Fred Drakee4dbb862000-07-07 03:36:12 +000061 Register the browser type \var{name}. Once a browser type is
62 registered, the \function{get()} function can return a controller
63 for that browser type. If \var{instance} is not provided, or is
64 \code{None}, \var{constructor} will be called without parameters to
65 create an instance when needed. If \var{instance} is provided,
66 \var{constructor} will never be called, and may be \code{None}.
Eric S. Raymondf7f18512001-01-23 13:16:32 +000067
68 This entry point is only useful if you plan to either set the
69 \envvar{BROWSER} variable or call \function{get} with a nonempty
70 argument matching the name of a handler you declare.
Fred Drakee4dbb862000-07-07 03:36:12 +000071\end{funcdesc}
72
Eric S. Raymondf79cb2d2001-01-23 13:49:44 +000073A number of browser types are predefined. This table gives the type
74names that may be passed to the \function{get()} function and the
75corresponding instantiations for the controller classes, all defined
76in this module.
Fred Drakee4dbb862000-07-07 03:36:12 +000077
78\begin{tableiii}{l|l|c}{code}{Type Name}{Class Name}{Notes}
Eric S. Raymondf79cb2d2001-01-23 13:49:44 +000079 \lineiii{'mozilla'}{\class{Netscape('mozilla')}}{}
80 \lineiii{'netscape'}{\class{Netscape('netscape')}}{}
Barry Warsaw21f37e12001-01-25 00:38:15 +000081 \lineiii{'mosaic'}{\class{GenericBrowser('mosaic \%s \&')}}{}
Eric S. Raymondf79cb2d2001-01-23 13:49:44 +000082 \lineiii{'kfm'}{\class{Konqueror()}}{(1)}
83 \lineiii{'grail'}{\class{Grail()}}{}
84 \lineiii{'links'}{\class{GenericBrowser('links \%s')}}{}
85 \lineiii{'lynx'}{\class{GenericBrowser('lynx \%s')}}{}
86 \lineiii{'w3m'}{\class{GenericBrowser('w3m \%s')}}{}
Fred Drakec826ecb2000-07-07 17:08:40 +000087 \lineiii{'windows-default'}{\class{WindowsDefault}}{(2)}
88 \lineiii{'internet-config'}{\class{InternetConfig}}{(3)}
Fred Drakee4dbb862000-07-07 03:36:12 +000089\end{tableiii}
90
91\noindent
92Notes:
93
94\begin{description}
95\item[(1)]
Eric S. Raymondf79cb2d2001-01-23 13:49:44 +000096``Konqueror'' is the file manager for the KDE desktop environment for
Fred Drakef6791f32000-10-02 03:42:43 +000097UNIX, and only makes sense to use if KDE is running. Some way of
98reliably detecting KDE would be nice; the \envvar{KDEDIR} variable is
Fred Drake21e036c2001-03-26 16:17:21 +000099not sufficient. Note also that the name ``kfm'' is used even when
100using the \program{konqueror} command with KDE 2 --- the
101implementation selects the best strategy for running Konqueror.
Fred Drakec826ecb2000-07-07 17:08:40 +0000102
103\item[(2)]
Fred Drakee4dbb862000-07-07 03:36:12 +0000104Only on Windows platforms; requires the common
105extension modules \module{win32api} and \module{win32con}.
106
Fred Drakec826ecb2000-07-07 17:08:40 +0000107\item[(3)]
Fred Drakee4dbb862000-07-07 03:36:12 +0000108Only on MacOS platforms; requires the standard MacPython \module{ic}
109module, described in the \citetitle[../mac/module-ic.html]{Macintosh
110Library Modules} manual.
111\end{description}
112
113
114\subsection{Browser Controller Objects \label{browser-controllers}}
115
116Browser controllers provide two methods which parallel two of the
117module-level convenience functions:
118
119\begin{funcdesc}{open}{url\optional{, new}}
120 Display \var{url} using the browser handled by this controller. If
121 \var{new} is true, a new browser window is opened if possible.
122\end{funcdesc}
123
124\begin{funcdesc}{open_new}{url}
125 Open \var{url} in a new window of the browser handled by this
126 controller, if possible, otherwise, open \var{url} in the only
Fred Drake53d285a2001-07-19 03:49:33 +0000127 browser window.
Fred Drakee4dbb862000-07-07 03:36:12 +0000128\end{funcdesc}