A toolbar is typically a row, column, or block of onscreen buttons or icons in a graphical user interface on a computer display that, when clicked, activate certain functions of the program. Earlier forms of toolbars were defined by programmers as having set functions. Most modern programs and operating systems however, allow end users to modify and customize toolbars to fit their personal needs. Toolbars for browsers are best known for adding functionality and ease-of-use options to an end user. While the browser itself handles basic browsing navigation such as forward, back stop, and reload, toolbars often add additional functionality to browsers such as additional search fields, form-fill capability, and links back to popular websites.
Various companies offer downloadable toolbars that must be installed on an end user's computer so the end user may use the toolbar in conjunction with a browser to provide quick access to search and other functions from any browser screen. However, these toolbars require the user to download and install the toolbar prior to use. In addition, a different version of the toolbar must be downloaded and installed in order to use the toolbar with a specific browser and/or with a specific operating system. Many users do not wish to install third-party toolbars, and third-party toolbars may present security flaws.
Embodiments of the present invention provide for a method, system, and apparatus for inserting a virtual toolbar into a markup language document.
According to one embodiment, a method for inserting a virtual toolbar into a markup language document includes receiving a request for the markup language document from a user device, forwarding the request to a server, receiving the markup language document from the server, and inserting a virtual toolbar into the markup language document to produce a virtual toolbar embedded markup language document.
According to another embodiment, a computer usable program product in a computer readable medium storing computer executable instructions for inserting a virtual toolbar into a markup language document is provided. The computer executable instructions, when executed, cause at least one processor to receive a request for the markup language document from a user device, forward the request to a server, receive the markup language document from the server, and insert a virtual toolbar into the markup language document to produce a virtual toolbar embedded markup language document.
According to still another embodiment, a system for inserting a virtual toolbar into a markup language document includes a server and a toolbar server. The server includes at least one storage device for storing the markup language document. The toolbar server is coupled to the server and is operable to receive a request for the markup language document from a user device, forward the request to a server, receive the markup language document from the server, insert a virtual toolbar into the markup language document to produce a virtual toolbar embedded markup language document, and send the virtual toolbar embedded markup language document to the user device.
A more complete understanding of the method and apparatus of the principles of the present invention may be obtained by reference to the following Detailed Description when taken in conjunction with the accompanying Drawings wherein:
Various embodiments of the present invention provide for a system and method for inserting a virtual toolbar into a markup language document. A markup language document is an electronic document that has been formatted or encoded in accordance with a markup language. Examples of markup languages include Hypertext Markup Language (HTML), Extensible Markup Language (XML), Standard Generalized Markup Language (SGML), and Extensible HyperText Markup Language (XML). In at least one embodiment, the markup language document is a web page retrieved from a server. A web page may include an electronic document having text and/or graphics that is retrievable by and displayable by an electronic document browser. In a particular embodiment, an electronic document browser is a software application that enables a user to display and interact with text, images, videos, music and other information located in an electronic document, such as a web page, retrieved from a server coupled to an external network or a local area network Examples of electronic document browsers include Microsoft Corporation's Internet Explorer and Mozilla Corporation's Firefox.
The toolbar server 130 is further coupled to the core router 150 and the user preference database 140. The user preference database 140 stores toolbar preference information associated with one or more of user device 110a-110c and/or one or more users of the user devices 110a-110c. The core router 150 functions to couple the toolbar server 130 to one or more networks, such as the internet 160. In a particular embodiment, a remote server 170 is coupled to the internet 160. In accordance with various embodiments, each of the user devices 110a-110c includes an electronic document browser 125a-125c having a graphical user interface for retrieving electronic documents from the remote server 170 and displaying the electronic documents. In a particular embodiment, the electronic document browser 125a-125c is a web browser. In at least one embodiment, the toolbar server 130 comprises at least one computer having at least one processor for executing computer instructions operable to cause the toolbar server 130 to receive a request for a markup language document from user device 110a, forward the request to the remote server 170, receive the markup language document from the remote server 170, insert a virtual toolbar into the markup language document to produce a virtual toolbar embedded markup language document, and send the virtual toolbar embedded markup language document to user device 125a. In various embodiments, a virtual toolbar is a user interface in the form of a toolbar that is not built into the functionality of the electronic document browser 125a-125c, but is instead a user interface in the form of a toolbar that is inserted or embedded into a markup language document. In various embodiments, the virtual toolbar is inserted or embedded by a service provider. The virtual toolbar may offer various functions and capabilities provided from the service provider to the user such as searching the web, viewing maps, retrieving news, and/or shopping.
In an example operation of the embodiment of
In response to receiving the request, the remote server 170 retrieves the markup language document in step 250. In step 260, the remote server 170 sends a response including the requested markup language document to the core router 150. The core router 150 forwards the response to the toolbar server 130 in step 270. In step 280, the toolbar server 130 queries the user preference database 140 and retrieves toolbar preference information associated with the user device 110a and/or the user. The toolbar preference information includes information such as a desired location of the virtual toolbar within the markup language document, and desired functions and capabilities to be provided by the virtual toolbar. In step 290, the toolbar server 130 inserts a virtual toolbar configured in accordance with the toolbar preference information into the markup language document to produce a virtual toolbar embedded markup language document. In a particular embodiment, the inserting of the virtual toolbar into the markup language document includes inserting markup language document code representing the virtual toolbar into markup language code representing the original markup language document. In step 300, the toolbar server 130 sends the virtual toolbar embedded markup language document to the consolidation router 120. In step 310, the consolidation router 120 sends the virtual toolbar embedded markup language document to the user device 110a. In step 320, the virtual toolbar embedded web page is displayed to the user of the user device 110a via the display 115a. In accordance with various embodiments, the user of the user device 110a can interact with the virtual toolbar to perform various functions and capabilities provided by the virtual toolbar, such as searching the web, viewing maps, retrieving news, and/or shopping.
The various steps of procedure 200 have been chosen and described only as exemplary and are not limiting on the illustrative embodiments. An implementation of the illustrative embodiments may alter, combine, delete or augment these steps without departing from the scope of the illustrative embodiments.
In an example operation of the embodiment illustrated in
In the embodiment illustrated in
The virtual toolbar 430 includes a search text entry field 450 and a drop-down search selection menu 460. The search text entry field 450 allows a user to enter a text query for which the user wishes to search. The drop-down search selection menu 460 allows a user to select a search category for which the user wishes to search using the text query entered into the search text entry field 450. In the embodiment illustrated in
The virtual toolbar 430 further includes a drop-down map search selection menu 500 that allows a user to search for maps or driving directions related to text entered into the search text entry field 450. A drop-down headlines selection menu 470 allows the user to search for news items, and a drop-down shopping selection menu 480 allows the user to select categories for shopping for items. The virtual toolbar 430 further includes a drop-down options selection menu 490 that allows a user to change user preference information stored in the user preference database 140 or view Frequently Asked Questions (FAQs). A drop-down map menu 500 of the virtual toolbar 430 allows a user to get driving directions or a map of a location, and a MyEmbarq drop-down menu 510 allows a user to go to a personal webpage, check email, or view other information channels. It should be understood that the virtual toolbar 430 illustrated in
One advantage provided by the virtual toolbar 430 of various embodiments is that a user is not required to download and install an executable program in order to use the virtual toolbar 430. Another advantage provided by various embodiments of the virtual toolbar 430 is that the virtual toolbar 430 is inserted into the top of every webpage visited by a user, regardless of the browser being used. Another advantage of certain embodiments of the virtual toolbar 430 is that the supplier of the virtual toolbar 430 may capture a portion of online search revenue by providing access to search engines to a user via the virtual toolbar 430.
Although the embodiment illustrated in
The illustrative embodiments can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. Furthermore, the illustrative embodiments can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer-readable medium can be any tangible apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory, a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD.
Further, a computer storage medium may contain or store a computer-readable program code such that when the computer-readable program code is executed on a computer, the execution of this computer-readable program code causes the computer to transmit another computer-readable program code over a communication link. This communication link may use a medium that is, for example without limitation, physical or wireless.
The above description has been presented for purposes of illustration and description, and is not intended to be exhaustive or limited to the illustrative embodiments in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art.