| 
									
										
										
										
											2000-07-07 03:36:12 +00:00
										 |  |  | \section{\module{webbrowser} --- | 
					
						
							|  |  |  |          Convenient Web-browser controller} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \declaremodule{standard}{webbrowser} | 
					
						
							|  |  |  | \modulesynopsis{Easy-to-use controller for Web browsers.} | 
					
						
							|  |  |  | \moduleauthor{Fred L. Drake, Jr.}{fdrake@acm.org} | 
					
						
							|  |  |  | \sectionauthor{Fred L. Drake, Jr.}{fdrake@acm.org} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The \module{webbrowser} module provides a very high-level interface to | 
					
						
							|  |  |  | allow displaying Web-based documents to users.  The controller objects | 
					
						
							|  |  |  | are easy to use and are platform independent. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Under \UNIX, graphical browsers are preferred under X11, but text-mode | 
					
						
							| 
									
										
										
										
											2000-10-02 03:42:43 +00:00
										 |  |  | browsers will be used if graphical browsers are not available or an X11 | 
					
						
							| 
									
										
										
										
											2000-07-07 03:36:12 +00:00
										 |  |  | display isn't available.  If text-mode browsers are used, the calling | 
					
						
							|  |  |  | process will block until the user exits the browser. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-01-23 13:16:32 +00:00
										 |  |  | Under \UNIX, if the environment variable \envvar{BROWSER} exists, it | 
					
						
							|  |  |  | is interpreted to override the platform default browser, as a | 
					
						
							|  |  |  | colon-separated list of browsers to try in order.  When the value of | 
					
						
							|  |  |  | a list part contains the string \code{\%s}, then it is interpreted as | 
					
						
							|  |  |  | a literal browser command line to be used with the argument URL | 
					
						
							|  |  |  | substituted for the \code{\%s}; if the part does not contain, | 
					
						
							|  |  |  | \code{\%s}, it is simply interpreted as the name of the browser to | 
					
						
							|  |  |  | launch. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-07-07 03:36:12 +00:00
										 |  |  | For non-\UNIX{} platforms, or when X11 browsers are available on | 
					
						
							|  |  |  | \UNIX, the controlling process will not wait for the user to finish | 
					
						
							|  |  |  | with the browser, but allow the browser to maintain its own window on | 
					
						
							|  |  |  | the display. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The following exception is defined: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{excdesc}{Error} | 
					
						
							|  |  |  |   Exception raised when a browser control error occurs. | 
					
						
							|  |  |  | \end{excdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The following functions are defined: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{open}{url\optional{, new}} | 
					
						
							|  |  |  |   Display \var{url} using the default browser.  If \var{new} is true, | 
					
						
							|  |  |  |   a new browser window is opened if possible. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{open_new}{url} | 
					
						
							|  |  |  |   Open \var{url} in a new window of the default browser, if possible, | 
					
						
							| 
									
										
										
										
											2001-01-23 13:16:32 +00:00
										 |  |  |   otherwise, open \var{url} in the only browser window.  (This entry | 
					
						
							|  |  |  |   point is deprecated and may be removed in 2.1.) | 
					
						
							| 
									
										
										
										
											2000-07-07 03:36:12 +00:00
										 |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{get}{\optional{name}} | 
					
						
							| 
									
										
										
										
											2001-01-23 13:16:32 +00:00
										 |  |  |   Return a controller object for the browser type \var{name}.  If | 
					
						
							|  |  |  |   \var{name} is empty, return a controller for a default browser | 
					
						
							|  |  |  |   appriopriate  | 
					
						
							| 
									
										
										
										
											2000-07-07 03:36:12 +00:00
										 |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-10-23 15:41:13 +00:00
										 |  |  | \begin{funcdesc}{register}{name, constructor\optional{, instance}} | 
					
						
							| 
									
										
										
										
											2000-07-07 03:36:12 +00:00
										 |  |  |   Register the browser type \var{name}.  Once a browser type is | 
					
						
							|  |  |  |   registered, the \function{get()} function can return a controller | 
					
						
							|  |  |  |   for that browser type.  If \var{instance} is not provided, or is | 
					
						
							|  |  |  |   \code{None}, \var{constructor} will be called without parameters to | 
					
						
							|  |  |  |   create an instance when needed.  If \var{instance} is provided, | 
					
						
							|  |  |  |   \var{constructor} will never be called, and may be \code{None}. | 
					
						
							| 
									
										
										
										
											2001-01-23 13:16:32 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   This entry point is only useful if you plan to either set the | 
					
						
							|  |  |  |   \envvar{BROWSER} variable or call \function{get} with a nonempty | 
					
						
							|  |  |  |   argument matching the name of a handler you declare.   | 
					
						
							| 
									
										
										
										
											2000-07-07 03:36:12 +00:00
										 |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Several browser types are defined.  This table gives the type names | 
					
						
							|  |  |  | that may be passed to the \function{get()} function and the names of | 
					
						
							|  |  |  | the implementation classes, all defined in this module. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{tableiii}{l|l|c}{code}{Type Name}{Class Name}{Notes} | 
					
						
							| 
									
										
										
										
											2001-01-23 13:16:32 +00:00
										 |  |  |   \lineiii{'mozilla'}{\class{Mozilla}}{} | 
					
						
							| 
									
										
										
										
											2000-07-07 03:36:12 +00:00
										 |  |  |   \lineiii{'netscape'}{\class{Netscape}}{} | 
					
						
							| 
									
										
										
										
											2001-01-23 13:16:32 +00:00
										 |  |  |   \lineiii{'mosaic'}{\class{Mosaic}}{} | 
					
						
							| 
									
										
										
										
											2000-07-07 17:08:40 +00:00
										 |  |  |   \lineiii{'kfm'}{\class{Konquerer}}{(1)} | 
					
						
							| 
									
										
										
										
											2000-07-07 03:36:12 +00:00
										 |  |  |   \lineiii{'grail'}{\class{Grail}}{} | 
					
						
							| 
									
										
										
										
											2001-01-23 13:16:32 +00:00
										 |  |  |   \lineiii{'links'}{\class{links}}{} | 
					
						
							|  |  |  |   \lineiii{'lynx'}{\class{Lynx}}{} | 
					
						
							|  |  |  |   \lineiii{'w3m'}{\class{w3m}}{} | 
					
						
							| 
									
										
										
										
											2000-07-07 17:08:40 +00:00
										 |  |  |   \lineiii{'windows-default'}{\class{WindowsDefault}}{(2)} | 
					
						
							|  |  |  |   \lineiii{'internet-config'}{\class{InternetConfig}}{(3)} | 
					
						
							| 
									
										
										
										
											2000-07-07 03:36:12 +00:00
										 |  |  | \end{tableiii} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \noindent | 
					
						
							|  |  |  | Notes: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{description} | 
					
						
							|  |  |  | \item[(1)] | 
					
						
							| 
									
										
										
										
											2000-10-02 03:42:43 +00:00
										 |  |  | ``Konquerer'' is the file manager for the KDE desktop environment for | 
					
						
							|  |  |  | UNIX, and only makes sense to use if KDE is running.  Some way of | 
					
						
							|  |  |  | reliably detecting KDE would be nice; the \envvar{KDEDIR} variable is | 
					
						
							|  |  |  | not sufficient. | 
					
						
							| 
									
										
										
										
											2000-07-07 17:08:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | \item[(2)] | 
					
						
							| 
									
										
										
										
											2000-07-07 03:36:12 +00:00
										 |  |  | Only on Windows platforms; requires the common | 
					
						
							|  |  |  | extension modules \module{win32api} and \module{win32con}. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-07-07 17:08:40 +00:00
										 |  |  | \item[(3)] | 
					
						
							| 
									
										
										
										
											2000-07-07 03:36:12 +00:00
										 |  |  | Only on MacOS platforms; requires the standard MacPython \module{ic} | 
					
						
							|  |  |  | module, described in the \citetitle[../mac/module-ic.html]{Macintosh | 
					
						
							|  |  |  | Library Modules} manual. | 
					
						
							|  |  |  | \end{description} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \subsection{Browser Controller Objects \label{browser-controllers}} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Browser controllers provide two methods which parallel two of the | 
					
						
							|  |  |  | module-level convenience functions: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{open}{url\optional{, new}} | 
					
						
							|  |  |  |   Display \var{url} using the browser handled by this controller.  If | 
					
						
							|  |  |  |   \var{new} is true, a new browser window is opened if possible. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{open_new}{url} | 
					
						
							|  |  |  |   Open \var{url} in a new window of the browser handled by this | 
					
						
							|  |  |  |   controller, if possible, otherwise, open \var{url} in the only | 
					
						
							| 
									
										
										
										
											2001-01-23 13:16:32 +00:00
										 |  |  |   browser window.  (This method is deprecated and may be removed in | 
					
						
							|  |  |  |   2.1.) | 
					
						
							| 
									
										
										
										
											2000-07-07 03:36:12 +00:00
										 |  |  | \end{funcdesc} |