使用浏览器、钱包和密钥进行在线购物的制作方法

文档序号:6431073阅读:215来源:国知局
专利名称:使用浏览器、钱包和密钥进行在线购物的制作方法
技术领域
本发明涉及一种有助于使用因特网浏览器进行在线购物的方法和系统。
背景技术
当访问因特网(也就是万维网、网络等等)时,典型地,因特网用户通过电脑启动或激活浏览器软件程序,例如,Netscape NavigatorTM或Microsoft Internet ExplorerTM。浏览器程序(这里也称作浏览器)建立到因特网的物理链路(例如,通过调制解调器与因特网服务提供商(ISP)),并且提供文本与图形用户界面,也就是浏览器界面,其具有预先确定的外观与功能,两者目前均不能被因特网用户显著地改变。因此,当因特网用户浏览因特网,从网站移动到网站,从应用程序移动到应用程序,或者从HTML(超文本标记语言)页面移动到HTML页面时,浏览器界面保持相对静止。
目前可获得对浏览器界面的有限控制,其通过可执行软件程序,其可以,比方说,向浏览器界面添加功能按钮。然而,附加功能在浏览器被初始激活时添加到浏览器界面,并且在其后保持静止。因此,显示如刚才所述被修改的浏览器界面的浏览器不可能在浏览器被初始化或用户浏览因特网时,动态地从因特网站点下载信息并定制。这样的被修改的浏览器界面也不向插件与界面提供对各种浏览器应用编程接口(API)的访问。因此,存在这样的需求提供方法,用于修改浏览器界面,并且提供浏览器界面,其克服了上面所描述的现有技术的缺点。
因特网站点的激增使得内容提供商(例如,因特网站点的所有者)吸引因特网用户把尽量多的时间花在某个特定因特网站点的难度越来越大。当然,内容提供商希望因特网用户花在自己的因特网站点的时间最多,或者保证因特网用户会返回内容提供商的网站;这样的情况在本领域通常被称为粘性(stickiness)。因特网站点供应商的很多商业模型都是基于(至少是部分基于)广告收入。用户停留或返回某个因特网站点的可能性越大,用户看到这个网站显示的广告的可能性就越大。这样,因特网站点供应商就能从网页上的广告那里获得更多的收益。
内容提供商也希望访问其网站的因特网用户数量越多越好。简而言之,因特网内容提供商希望吸引尽可能多的因特网用户访问其网站,并使这些用户停留在其网站的时间量尽可能长;而使用现有的因特网浏览器,这两点都不可能办到。
在因特网的诸多益处之中,在线购物与传统购物方式相比具有独特的优势。显然,在家中或办公室里,在相对较短的时间内轻松访问大量的商业网站,浏览它们各自的商品,比较价格并下订单,在线购物方式的这些特点能够节省购物者的时间与金钱。另外,对逛很多商店感到困难(由于天气、附近缺少商店或其他原因)的购物者,现在只用指尖就可以轻易看到几乎无限多的商店和商品。
在线购物的经历相对比较迅速。购物者可以从商业网站导航到商业网站,浏览商品,选择商品并将其放入电子购物车中,所有这些只需鼠标轻点几下就可以完成。然而,结账过程仍然相对费时费力。一旦购物者完成购物过程,通过选择商业网站上的“结账”选项就可以启动结账过程。通常在之后,购物者需要输入各种个人数据,包括姓名、记账和发货地址、信用卡号码等。购物者必须向每个供应商重复提供这些信息以完成每一笔在线购物交易,这样会增加出现错误的可能性(购物者提供信息的过程中)并降低在线购物过程的处理速度。

发明内容
本发明涉及动态控制因特网浏览器界面的方法和可动态控制的浏览器界面。在本发明的实施例中,购物助理按钮和购物助理功能加入到浏览器界面中,并提供给用户(例如,在线购物者)更快捷和更准确的在线购物过程。
本发明也涉及增加因特网用户访问特定因特网站点次数的方法,以及增加因特网用户在特定因特网站点访问时间的方法。
如这里所使用的,术语“控制”与“可控的”是指,比如,但不限于,添加、去除和修改因特网浏览器界面。因特网浏览器界面,如这里所称的,是指呈现给浏览器用户的可视的或可听的表达,用户通过其与浏览器交互。术语“定制”(以及其变形)也可使用在这里,以描述遵照本发明提供的可控性。如这里所使用的,术语“动态控制”(以及其变形)是指一种方法,通过这种方法,在激活显示界面对象的浏览器的同时,因特网浏览器界面的一部分(也就是界面对象)可被选择性地显示和周期性地改变或更新。
浏览器,如这里所使用的,被给予其通常的、业界承认的含义,一般指软件程序,其提供到万维网或因特网的界面。浏览器允许因特网用户浏览因特网,建立到各个因特网站点的连接,阅览内容提供商在各个因特网站点提供的网页。特别地,浏览器有能力通过因特网站点调用ActiveX控件或插件。浏览器也允许因特网用户在因特网站点之间导航,也就是网上冲浪。浏览器向因特网用户提供浏览器界面,其格式由浏览器软件程序的提供商确定。典型地,浏览器界面定义浏览器提供给因特网用户的布局(例如颜色、大小、数量与位置)与功能。浏览器界面可包括第一父窗口,典型地,其定义浏览器界面的一般大小、颜色与布局,并包含窗口控制按钮(例如,最小化、关闭等等)。浏览器界面还可包括第二父窗口(第一父窗口的子窗口),以及一个或多个依赖于第二父窗口的窗口(即子窗口)。第二父窗口及依赖于其的窗口可向因特网用户提供,比如,各种信息(例如,广告、优待券、新闻、HTML链接等等)与功能(也就是,工具条、下拉菜单、插件、应用程序等等)。
ActiveX控件,如这里所使用的,指一种工具,其用于将桌面应用程序链接到因特网,其基于业界承认、Microsoft开发的规范。插件,如这里所使用的,指一种类型的程序,其被开发以用于Netscape浏览器,并与更大的应用程序(例如浏览器软件程序)集成,以向该更大的应用程序添加特定功能或能力。如上所述的、这里所称的ActiveX控件与插件可与任何因特网浏览器一起使用。
如这里所使用的,术语“因特网站点”是指因特网上的地点(即节点),其为因特网地址或URL(统一或通用资源定位符)所定义。如这里所使用的,术语“因特网网页”是指在因特网站点上提供的超文本标记语言(HTML)命令的集合,并提供文本、图像与功能的格式信息,以创建超文本文档,其可通过浏览器在因特网用户的电脑显示器上显示。例如,因特网用户输入URL,以建立到因特网站点的连接,该因特网站点向用户的浏览器提供HTML命令,使得该因特网站点的网页可以显示在用户的电脑显示器上。浏览器解释内嵌于网页内的超文本标记语言(HTML)命令,并使用HTML命令来为该网页格式化文本与图像。
本发明向因特网用户、因特网内容提供商与因特网服务提供商(ISP)提供了有利之处。对于因特网用户,本发明提供一种方法,其动态地控制或定制该用户的因特网浏览器界面。因特网用户现在可以定制浏览器界面,使得每次用户使用浏览器访问因特网时,用户定义的信息和/或功能(这里统称为信息)将显示于浏览器界面。例如,用户可包括书签、地址簿与电话簿、个人金融信息、个性化新闻以及各种功能,例如可通过ActiveX控件与插件获得。
另外,如果因特网用户有内容提供商的账号,浏览器现在可以在浏览器界面上动态地显示该用户的特定账号信息(例如,投资证券组合、新闻头条、书签、地址簿等等)。目前,因特网用户只能在连接到该内容提供商的因特网站点时访问该用户的特定账号信息。用户必须返回该内容提供商的站点,以接收更新的帐户信息。一旦用户离开该因特网站点,浏览器界面上不再显示账号信息。本发明提供动态控制的方法,以及可动态地控制的浏览器界面,其允许因特网用户在浏览器界面上显示并持续地更新特定于该用户的信息和/或功能。
对于内容提供商,本发明保证每次用户使用浏览器访问因特网时,该因特网用户(通过浏览器)自动地建立到该内容提供商的因特网站点的连接。因此,一旦因特网用户使浏览器执行(例如通过选择浏览器图标),浏览器就自动地建立到内容提供商的因特网站点的连接,以加载该用户的定制的浏览器界面信息。本发明也可在浏览器活动时即用户网上冲浪时,周期性地、自动地使用户的浏览器连接到内容提供商的因特网站点。在一个实施例中,内容提供商可向因特网用户提供到程序的访问,该程序用于控制浏览器界面。一旦因特网用户访问该控制程序以定制该用户的浏览器界面,每次用户访问因特网时,用户的浏览器可自动地建立到该内容提供商的连接。因此,与目前可获得的浏览器(其仅当用户输入URL(或其它实际地行动,以使连接建立,比方说,通过选择链接或广告条)时建立到因特网站点的连接)相反,本发明在浏览器初始化时自动地建立到内容提供商的连接,其独立于预编程到浏览器的任何主页选择,无论这是因特网用户还是浏览器销售商的选择。一旦该初始连接建立,内容提供商可向因特网用户的电脑装载用户特定的信息和/或功能,以显示到该用户的浏览器界面。
另外,内容提供商也可周期性地使浏览器自动地重连到该内容提供商的因特网站点,以更新、下载新的信息和/或功能、或以其它方式传输信息和/或功能,用于因特网用户的浏览器界面。例如,如果因特网用户订阅了内容提供商的电子邮件服务,该内容提供商接收的该因特网用户的电子邮件消息可自动地传输给该因特网用户,即使该用户正在其它地方“冲浪”。当用户的浏览器执行时,用户的浏览器初始地建立到内容提供商的因特网站点的连接,该内容提供商传输给该因特网用户的信息包括对该浏览器的指令,以周期性地重连到该内容提供商的因特网站点。因此,无论用户访问的因特网站点的数量,也无论用户当前正访问哪个特定因特网站点,回到内容提供商的因特网站点的连接将以内容提供商确定的间隔自动地建立;这些重连对于因特网用户而言是透明的,但用户从内容提供商接收通知(也就是新邮件到达)时除外。因此,在因特网用户网上冲浪时,浏览器界面可被动态地控制。对于ISP,好处至少与内容提供商一样大。
初始地,因特网用户的浏览器界面必须使用软件程序定制,其可由内容提供商或ISP提供,或可在用户的电脑上获得。该软件程序,此后称之为控制程序或用于控制的程序(以及其变形),改变用户的浏览器工作的方式。更明确地,控制程序在因特网用户的电脑上下载或创建库文件。库文件可以是,比如说,动态链接库(DLL)(用于Windows操作系统),其在浏览器内创建一个外壳(shell)(或多个外壳),各种信息和/或功能可作为ActiveX控件或插件装载到其中。库文件包含ActiveX控件或插件功能,其遵照本发明定义添加到浏览器界面的界面对象。当因特网用户启动或激活浏览器,库文件被打开,包含于其内的ActiveX控件或插件代码可为浏览器得到,并集成到浏览器界面,从而使界面对象显示到浏览器界面上。只要浏览器激活,一般地只要用户网上冲浪,库文件,并且随之地,外壳(或多个外壳),就保持打开。因此,甚至在用户从因特网站点移动到因特网站点时,用于定制浏览器界面并装载到外壳的信息和/或功能保持活动。当在这里的上下文内使用时,术语“信息和功能”是指任何信息、数据和/或软件驱动的功能,其可为库文件所包含,或者是库文件的一部分。
当用户初始地激活浏览器时,库文件也使浏览器建立到内容提供商的因特网站点的连接。内容提供商的因特网站点将会把用于界面对象的信息和/或功能装载到用户的电脑,以用于浏览器,并显示到浏览器界面。如果,比方说,用户有内容提供商的账号,内容提供商装载的信息和/或功能可以是特定于因特网用户的。作为另一种可供选择的方案,如果,比方说,用户没有内容提供商的账号(也就是,其为客人(guest)),内容提供商可以装载一般的信息和/或功能。
本发明使用对象链接与嵌入(OLE)进程内(in-process)服务器,以控制浏览器界面的信息和/或功能。使用包含于库文件之内的ActiveX控件或浏览器插件(每一个在这里被称为浏览器界面覆盖(BIO)库),事实上ActiveX控件或插件可获得的任何信息和/或功能均可使用本发明被添加到浏览器界面。库文件(通过BIO库)从而包含了为定制,也就是添加、删除和/或修改浏览器界面所必需的代码。
一旦因特网用户访问控制程序,并定制该用户的浏览器的操作,当浏览器被激活时,显示被定制的浏览器界面。与现有技术的浏览器修改方法相反,本发明提供一种方法与浏览器界面,其可被动态地控制。当因特网用户网上冲浪时,更新的或变化的信息和/或功能可传输到浏览器并显示在浏览器界面上,同时维持浏览器界面被定制的信息和/或功能。因此,只要用户正在使用浏览器网上冲浪,在该用户的浏览器界面上,在任何因特网站点上,因特网用户可自动地接收最新的信息,比如说,股票行情、电子邮件、新的头条新闻。
本发明也提供一种方法与系统,其便利了网上购物,其修改浏览器界面,以提供购物助理按钮与功能。遵照本发明的本实施例提供的被修改的浏览器界面简化了在线购物,其为每个购物者或用户创建钱包。钱包存储于安全服务器上的数据库内,仅可被该用户访问、使用、或修改,且仅与用户提供的安全钥匙相联系。钱包包含用户提供的信息,其可被直接移植(port)到所支持的商户结账网页。因此,当用户正在所支持的商户的网站上在线购物,并且想从该商户购买特定商品和/或服务时,本发明向该用户提供到他的/她的钱包的访问途径,并便利了钱包内包含的数据的移植,以快速地、不费力地填写该商户的结账网页上提供的该商户的订单表格。
从后面的详细描述,联系所附的绘图来考虑,本发明的其它目标与特性将变得显而易见。然而,需要理解的是,这些绘图仅为阐述的目的而设计,而非作为对本发明的界限的定义,本发明的界限应参照所附的权利要求书。


附图仅为阐述性的,且其中所有视图中相似的参考字符表示相似的组件图1描述现有技术的因特网浏览器界面;图2描述遵照本发明的一个实施例的因特网浏览器界面的视图,其包括浏览器工具条内的界面对象;图3描述遵照本发明的一个实施例的因特网浏览器界面的视图,其具有界面工具条,其包括界面对象;图4描述遵照本发明的一个实施例的因特网浏览器界面的视图,其具有界面工具条,其包括多个界面对象;图5是一种方法的流程图,其遵照本发明的一个实施例控制因特网浏览器界面;图6-9是一种方法的流程图,其遵照本发明的各个实施例控制和显示因特网浏览器界面;图10是一种电脑的示意框图,其连接到因特网上,本发明可在其上实现;图11是遵照本发明的一个实施例的因特网浏览器界面的示例性的屏幕截图,其具有购物助理按钮;图12是遵照本发明的一个实施例的钱包建立网页的示例性的屏幕截图;图13是遵照本发明的一个实施例的钱包数据条目网页的示例性的屏幕截图;图14是遵照本发明的一个实施例的钱包小结网页的示例性的屏幕截图;图15是遵照本发明的一个实施例的安全钥匙窗口的示例性的屏幕截图;图16是遵照本发明的一个实施例的钱包信息窗口的示例性的屏幕截图;和图17是遵照本发明的一个实施例的所支持的商户结账网页的示例性的屏幕截图。
具体实施例方式
本发明涉及一种控制并显示因特网浏览器界面的方法,以及可控制的因特网浏览器界面。按照本发明,使用因特网内容提供商、ISP提供的或存在于因特网用户电脑中的控制软件程序,可以定制浏览器界面。控制软件程序能够使因特网用户、内容提供商或ISP定制并控制用户浏览器和浏览器界面的信息和/或功能。
本发明也提供一种方法与系统,其便利了网上购物,其修改浏览器界面,以提供购物助理按钮与功能。遵照本发明的本实施例提供的被修改的浏览器界面简化了在线购物,其为每个购物者或用户创建钱包。钱包存储于安全服务器上的数据库内,仅可被该用户访问、使用或修改,且仅与用户提供的安全钥匙相联系。钱包包含用户提供的信息,其可被直接移植到所支持的商户结账网页。因此,当用户正在所支持的商户的网站上在线购物,并且想从该商户购买特定商品和/或服务时,本发明向该用户提供到他的/她的钱包的访问途经,并便利了钱包内包含的数据的移植,以快速地、不费力地填写该商户的结账网页上提供的该商户的订单表格。
现在详细地参照附图,图10是电脑50的框图,电脑50连接到因特网90,本发明可于其上实现。电脑50包含内部总线64,其便利了电脑50的各个设备之间的信息(即数字数据)通信,也便利了电脑通过通信接口68与外部设备和系统的通信。处理器66连接到总线64,在电脑50内处理信息。电脑50也包括主内存60,例如,随机存取内存(RAM)或其它等价的动态内存存储设备,其连接到总线64,用于接收和存储从处理器66上传输的指令。主内存60还可被用于在处理器66执行指令时暂时地存储变量或其它中间信息。只读内存(ROM)62也连接到总线64,用于存储静态数据与指令,其为处理器66使用。作为电脑50的一部分,提供各种输入与输出设备,包括,但不限于,显示器54(例如阴极射线管(CRT)、液晶显示器(LCD)等等),输入设备56,例如键盘,以及光标控制设备58,例如鼠标或跟踪球。数据存储设备52,例如,磁盘驱动器与磁盘、CD-ROM驱动器与CD-ROM或其它等价的设备与数据存储介质,连接到总线64,以与处理器66、主内存60和通信接口68通信。优选地,存储设备52上存储有操作系统70和因特网浏览器软件程序72(即浏览器)。
电脑50可通过基于传输介质之上的通信接口68连接到因特网90,该传输介质包括,但不限于,同轴电缆、铜线与光纤电缆。电脑50与因特网90之间的通信也可通过无线或蜂窝式接口。通信接口68便利了电脑50与另一电子设备或系统(例如内容提供商100、200提供的服务器电脑(未显示))之间的双向通信。
使用电脑50的因特网用户(未显示)可取得对因特网90的访问,其使浏览器72执行,从而通过因特网服务提供商(ISP)80在电脑50的通信接口68与内容提供商100的因特网站点130之间打开通信链路。浏览器72向电脑显示器54提供浏览器界面20(参见,比如说,图1),其具有窗口30的布局(例如,颜色、大小、数量、位置)与功能,其为浏览器销售商在浏览器72内预先确定。内容提供商100将因特网内容传输到电脑50,以显示到浏览器接口20的内容窗口32中。
遵照本发明的一个实施例,第一互联网内容提供商100可向因特网用户提供对程序120的访问,以控制浏览器72与浏览器界面20。当被用户执行时,控制程序120在因特网用户的电脑50的数据存储设备52上下载或创建库文件74,例如,动态链接库(DLL)。优选地,库文件74包含ActiveX控件或插件功能。其后,当因特网用户使用浏览器72访问因特网时,浏览器72打开库文件74,并且,优选地,自动地建立到内容提供商的因特网站点130的连接。作为对浏览器72建立的连接的响应,内容提供商将信息和/或功能数据装载到外壳,该外壳操作在浏览器之内,由库文件74创建。例如,如果用户具有内容提供商100的账号,可装载定制的信息和/或功能到库文件74。如果用户不具有账号,可装载更一般的(即客户)信息和/或功能。
遵照本发明的各种实施例,如这里更详细地描述的,数据可在电脑之间(例如,在服务器与用户或客户端电脑之间)传输。本发明预期这样的数据传输(或发送/接收、下载/上载等等)可以以任何方式,使用任何介质,使用任何现在已知或今后开发的介质或手段来实现。
基本地,库文件74在浏览器72之内打开外壳(或多个外壳),其包含ActiveX控件或插件代码,可控制(即,添加、删除和/或修改)因特网浏览器72与浏览器界面20。当装载ActiveX控件或插件后,优选地,库文件74包含函数、对象、数据与其它软件,这里一般地称之为信息,其可用于控制浏览器72与浏览器界面20。当因特网用户从因特网站点130移动到因特网站点230时,本发明确保库文件74(与外壳)不关闭。因此,当因特网用户从装载了ActiveX控件或插件的因特网站点断开连接,并连接到另一因特网站点时,通过ActiveX控件或插件提供的信息和/或功能没有丢失。
接着参照图1,描述了现有技术的因特网浏览器界面20,其具有多个窗口,每个窗口向因特网用户提供各种功能。浏览器界面20可包括第一父窗口30,典型地,其定义浏览器界面的一般大小、颜色与布局,并包含用于该窗口30的窗口控制按钮28(例如,最小化、关闭等等)。浏览器界面20还可在第一父窗口30之内包括第二父窗口36(第一父窗口的子窗口),以及一个或多个子窗口38,其依赖于第二父窗口。典型地,第二父窗口36及子窗口38定义信息和/或功能,当访问与浏览因特网时,其将协助因特网用户。例如,第二父窗口36及依赖于其的窗口38可提供工具条、下拉菜单、插件、应用程序等等。
例如,在界面20的顶部(在图中)提供的三个窗口38定义了三个工具条22,其可包括多个界面控件24,例如,下拉菜单、功能按钮(例如,停止、后退、前进、主页等等)以及功能按钮与窗口的组合(例如,搜索按钮与窗口)。最上面的工具条22提供多个下拉菜单24;中间的工具条22提供多个功能按钮24;而最下面的工具条22提供下拉菜单与窗口26(URL地址窗口)。内容窗口32也作为界面20的一部分提供,来自因特网内容提供商100(参看,例如,图10)的内容可在窗口内显示。因特网用户可开启和关闭较低的三个(在图上)工具条22中的任何一个,其使用第二工具条22内提供的查看(View)工具条对象24(下拉菜单)。然而,因特网用户目前不可以添加、删除或修改浏览器界面20。
图2-4描述了遵照本发明的各种实施例配置的因特网浏览器20。在图2中,浏览器界面20包括界面对象40,其为ActiveX控件或插件定义,该ActiveX控件或插件由内容提供商100装载到库文件74。界面对象40包括下拉菜单44,并与浏览器72提供的界面控件(也就是浏览器工具条对象)24一起显示在浏览器工具条22内。在图3中,界面对象40包括界面对象工具条42与下拉菜单44,其作为单独的窗口48显示于浏览器界面20内。在图4中,界面对象40包括界面工具条42,其包含多个下拉菜单44与搜索窗口46,显示于浏览器界面20内的单独的48内。界面对象40,遵照本发明的各种实施例,基本上可包括通过浏览器可获得的任何类型的信息和/或功能。这样,但不限于,界面对象40可包括下拉菜单,工具条与下拉菜单,文本信息(例如,广告、优待券等等),文本和/或伴音信息(例如,文本广告与伴随的声音),文本、伴音、和/或图像(动画或非动画)信息,视频,视频和音频,音频,等等。
图2-4描述的所发明的因特网浏览器界面20的多种实施例仅仅是本发明的阐述性的、非限制性的范例。可遵照这里提供的教导对所描述的浏览器界面20作出变形。
接着参照图5,那里描述了一种控制因特网浏览器界面20的方法,其遵照本发明的一个实施例,一般地被指示为500。在步骤510,因特网用户通过因特网网站130、ISP 80或该用户的电脑50访问控制程序120。在被因特网用户执行时,控制程序120向该用户提供其后控制该用户的因特网浏览器界面20的能力,如下面更详细地讨论的。在步骤520,控制程序120在因特网用户的电脑50上下载或创建库文件74,其包含ActiveX控件或插件代码,定义界面对象。每次因特网用户启动或激活浏览器72,库文件74被打开,到预先确定的因特网网站110的连接被自动建立,优选地,该因特网网站110被配置以与该因特网用户的电脑50、界面对象的ActiveX控件或插件代码进行通信,如步骤530与540所指示的那样。基本地,打开的库文件74在浏览器72?)内提供外壳,ActiveX控件或插件提供的功能可于其内添加到浏览器界面20。在浏览器72被关闭之前,库文件74或外壳均不会关闭。在步骤550,创建界面对象40,其将被显示在浏览器界面20内;界面对象40的信息和/或功能由ActiveX控件或插件定义。遵照本发明的各种实施例,只要用户继续网上冲浪或者浏览器72被激活,浏览器72在浏览器界面20内保持显示界面对象40,如步骤560所指示的那样。因此,在因特网用户网上冲浪时,遵照本发明添加到浏览器72与浏览器界面20的功能不会丢失。
本发明提供多种实施例,用于控制浏览器72与浏览器界面20,上面参照图5一般地进行了描述,现在将详细地描述每一个实施例。
接着参照图6,并继续参照图10,现在将提供一种方法的一种实施例的描述,该方法遵照本发明控制和显示浏览器72和浏览器界面20,一般地指示为600。出于图6的目的,并为了下面涉及的讨论,已在因特网用户的电脑50上下载或创建了库文件74,如这里所讨论的那样。在步骤610,因特网用户启动或激活浏览器72,以初始化到因特网90的访问。在步骤620,库文件74被打开,并且到预先确定的内容提供商的连接被自动建立,如步骤630所指示的那样。内容提供商将BIO库的ActiveX控件或插件代码定义的功能传输到用户的电脑50上(即,到库文件74),以创建界面对象40,其可被添加到浏览器界面20上。界面对象40显示于因特网浏览器界面20,如步骤640所指示的那样。当因特网用户漫游因特网90时,界面对象40的功能,如ActiveX控件或插件代码所定义的,保持在浏览器浏览器界面20内,无论用户访问的因特网站点的数量或类型,并且在用户使用浏览器软件程序72访问因特网90期间始终持续。当因特网用户从一个因特网站点移动到另一个时,如步骤650所指示的那样,本发明判定界面对象40是否在该移动后仍存活;浏览器72是否仍然在浏览器界面20上显示它,如步骤652所指示的那样。如果界面对象40不再显示于浏览器界面20内(换言之,它已被从浏览器界面20上删除,或者被终止),界面对象40被重画,如步骤660所指示的那样。如果用户从一个因特网站点移动到另一个时,界面对象40仍然存活,并继续显示在浏览器界面20内,在步骤654,本发明还判定浏览器72是否活动;这是因为仅在浏览器72运作时,界面对象40显示于浏览器界面20内。如果浏览器72不活动(如果用户不再网上冲浪),界面对象40被终止,库文件74被关闭,如步骤670所指示的那样。如果浏览器72保持活动,在步骤652,本发明继续确保界面对象40显示在浏览器界面20内。当因特网用户在因特网站点之间或之中移动时,本发明监控界面对象40的状态,并确保在用户漫游因特网90期间,浏览器72在浏览器界面20上显示它。
根据图6描述的实施例,本发明确保当因特网用户离开因特网网站130时,浏览器72在浏览器界面20上显示界面对象40,BIO库即于其上被初始地调用并装载到用户的电脑50上。例如,当用户启动或激活浏览器72时,自动创建到第一、预先确定的因特网站点130的连接,该站点由第一内容提供商100维护,并且BIO库被装载到用户的电脑50上。之后,浏览器72可通过库文件74创建的外壳来获得BIO库提供的功能。当因特网用户连接到第二内容提供商200维护的第二因特网站点230时,界面对象40的功能将继续呈现在浏览器界面20内。在此实施例中,当到第一因特网站点130的连接被终止时,本发明防止电脑50的浏览器72或操作系统70通过卸载库文件74,使BIO库的功能失效。
例如,当浏览器72初始地连接到因特网站点130时,该站点130以ActiveX控件软件代码的形式将功能信息作为BIO库传输到因特网用户的电脑50,其被装载到库文件74。当到第一因特网站点130的连接被终止时,如果操作系统70或浏览器72没有显式地指令库文件74关闭或卸载,甚至在到第一因特网站点130的连接被关闭之后,库文件74将保持被装载,向浏览器界面20内的界面对象40提供所需要的功能。当因特网用户在多个因特网站点之间移动时,保持库文件74被装载,使得能够从被装载ActiveX控件(其仅由第一因特网站点130传输给因特网用户50)之外、库文件74之内装载数据、函数与对象。只要库文件74保持被装载,库文件74之内、ActiveX控件之外创建的任何数据或对象将保持被装载,并继续在浏览器界面20内工作。
为在冲浪期间保持库文件74打开,在浏览器72连接到因特网站点130之后和该连接终止之前,一个全局对象,对象A,被创建于因特网用户的电脑50的程序堆中,而非调用函数的堆中。因此,当调用函数完成时,该全局对象仍存活。该全局对象可以用C++的new操作符创建,或通过在全局声明中声明一个全局对象。在任一种情形下,当浏览器72与第一因特网站点130之间的连接终止时,该全局对象将仍存活。
在第一因特网站点130提供的ActiveX控件关闭后,也就是终止到第一因特网站点130的初始连接后,这样定义的全局变量保持工作。一旦创建该全局对象,即使用该全局对象创建一个界面。该界面将服务于,比方说,向浏览器72与浏览器界面20删除、替代和/或添加功能。该界面可作为该全局对象的一部分创建,或由该全局对象分配一个新的界面对象40。例如,可创建界面对象40,其通过,比方说,在浏览器窗口38(参见,例如,图3与4)之内创建界面对象窗口48,并将其作为子窗口添加到浏览器界面20。作为另一种可供选择的方案,可直接修改浏览器界面20,其通过,比方说,添加或修改浏览器界面20内的浏览器工具条22或浏览器工具条对象24。还有一种可供选择的方案是创建界面工具条42,其分离于浏览器界面20,如图4所描述的那样。
另外,需要一个指针,其用于控制浏览器72并指令浏览器72建立到预先确定的因特网站点130的连接。优选地,该指针被全局地存储,使得库文件74内任何向浏览器72发送命令的函数或对象均可访问它。在Microsoft Internet Explorer中,比方说,可使用IWebBrower、IWebBrower2或IWebBrowerApp对象链接与嵌入(OLE)接口命令来创建该指针。使用Microsoft基本类库(MFC),比方说,可使用COleControl类的GetClientSite成员来创建该指针,以从第一因特网站点130,也就是装载BIO库的因特网站点,获取指针。GetClientSite作为浏览器72的进入点,与BIO库进行通信。可使用前一步骤返回的IOleClientSite类的GetContainer成员来取得BIO库的容器(container)的指针。BIO库的容器是这样的容器,ActiveX控件于其内被装载。一般地,因特网浏览器界面20包含多个部分,包括浏览器工具条22与内容窗口32。浏览器72为因特网用户访问的每一个网页创建一个文档对象,该文档对象包含出现在一个特定网页上的所有数据。该文档对象也是BIO库的容器。因此,也可称文档对象为BIO库的容器。
可使用前一步骤返回的IOleContainer类的QueryInterface成员来取得IServiceProvider接口的指针,可使用其来定位浏览器72呈现的任何其它接口。最后,可使用前一步骤返回的IServiceProvider类的QueryService成员来取得IWebBrowerApp、IWebBrower或IWebBrower2接口的指针,其取决于调用BIO库的浏览器72提供的特定接口。
在另一种可供选择的实施例中,可使用本发明来修改整个浏览器窗口30。如果与将界面对象40集成到现存的浏览器窗口38相反,整个浏览器窗口30被修改,被修改的浏览器窗口30的整个类可被子类化,或者,作为另一种可供选择的方案,该特定的浏览器窗口38可被子类化。如这里所使用的,术语子类化窗口,也称为勾住窗口,是指以用户定义的窗口消息处理过程替代原先的浏览器窗口消息处理过程,以处理发送给窗口的所有消息。例如,可使用Microsoft基本类库(MFC)的CWnd∷SubclassWindow()函数将窗口子类化。作为另一种可供选择的方案,可使用调用SetWindowLong函数(一个MicrosoftWindows函数)并传递GWK_WNDPROC参数(一个Microsoft Windows常数)将窗口子类化。SetWindowLong函数调用返回的指针可保存到用于被子类化的窗口的原浏览器窗口消息处理过程。这使得BIO库能够截获传递给窗口30或38的所有消息,并且BIO库可以解释来自界面控件24的命令,该界面控件24包括按钮、菜单等等,其为浏览器72提供,或来自界面对象40,为BIO库遵照本发明添加。
用户定义的窗口消息处理过程,其为BIO库提供,并且其替代原浏览器窗口消息处理过程,这里称之为BIO过程。对浏览器72使用BIO过程,可以截获和修改打算送给浏览器72的消息(例如,命令),或者BIO过程可以将替代或新消息(例如,界面对象40的消息处理器)传输到浏览器72。
本发明还确保界面对象40不会从浏览器界面20删除。例如,当因特网用户访问新网站时,一些因特网浏览器72重画整个浏览器界面20。在用户进行这样的因特网移动之后,尽管全局变量可能仍然工作,界面对象40将被从浏览器界面20上删除,因此将不会显示在浏览器界面20上。为防止这样的情况发生,BIO过程可截获来自浏览器72、重画浏览器界面20的消息(例如,命令),并在重画浏览器界面20之后立即重画界面对象40。作为另一种可供选择的方案,可周期性地测试界面对象40在浏览器界面20内是否存在,如果在浏览器界面20内不存在,可重画界面对象40。优选地,这样的周期性的测试以小于大约一秒的间隔发生。
作为上面所描述的实施例(在图6中描述)的一个范例,ActiveX控件被作为BIO库装载,并向浏览器界面20添加菜单项(与功能)。本发明创建ActiveX控件,其动态地创建一个新的全局对象,对象A,其创建新的菜单对象(其可以是界面对象40),具有所需要的、要添加到浏览器界面20的功能。可使用(比如说)指令AfxGetMainWnd()->GetMenu()->AppendMenu(),来将菜单对象40添加到浏览器界面20,这里浏览器界面20的所附加的菜单将包括弹出式菜单,指向菜单对象40。浏览器界面窗口之后将被子类化,并处理BIO过程所处理的菜单对象40的消息,以及被传递到浏览器72的消息处理器的浏览器界面20的消息。当因特网用户从第一因特网站点130上断开连接时(例如,离开包含ActiveX控件的网页),ActiveX控件将关闭,但全局对象(即对象A)将保持在程序堆中,并继续向浏览器界面20提供所需要的功能。
作为对子类化浏览器窗口(界面对象40被添加到其中)的替代,对象A,或者其后代之一,可保留对界面对象40的所有权。这样,可创建界面对象40的消息处理器。例如,除了使用Microsoft基本类库的SetOwner函数将界面对象40的所有权设置为对象A或其后代之一以外,遵照上面所描述的本发明的实施例,可向浏览器工具条22添加界面对象40。
接着参照图7,并继续参照图10,现在将提供一种方法的另一种可供选择的实施例的描述,该方法控制和显示浏览器界面20,其遵照本发明,一般地指示为700。出于图7的目的,并为了下面进行的讨论,已在因特网用户的电脑50上创建了库文件74,如这里所讨论的那样。在步骤710,因特网用户启动或激活浏览器72,以访问因特网90。在步骤720,库文件74在用户的电脑50上被打开,并且到预先确定的因特网站点130的连接被自动建立,如步骤730所指示的那样。在步骤740,内容提供商将BIO库的ActiveX控件或插件代码定义的功能传输到用户的电脑50(也就是到库文件74)上,以创建界面对象40,可使用持续循环将其显示在浏览器界面20上,以控制界面对象40的显示。仅当持续循环被终止时,可删除界面对象40(也就是终止其功能)。当因特网用户漫游因特网90时,界面对象40的功能,如ActiveX控件或插件代码所定义的,保持在浏览器浏览器界面20内,无论用户访问的因特网网站的数量或类型,并且只要浏览器72保持被激活,以及因特网用户使用该浏览器软件程序访问因特网,就始终持续。当因特网用户从一个网站移动到另一个时,如步骤750所指示的那样,本发明判定界面对象40是否在该移动后仍存活,换言之,浏览器界面20是否仍然显示它,如步骤752所指示的那样。如果浏览器72不再在浏览器界面20内显示界面对象40(即,它被从浏览器界面20中删除或被终止),界面对象40被重画,如步骤760所指示的那样。如果用户从一个网站移动到另一个后,界面对象40仍然存活,并继续显示在浏览器界面20内,在步骤754,本发明还判定浏览器72是否活动;这是因为仅在浏览器72运作时,浏览器72在浏览器界面20内显示界面对象40。如果浏览器72不活动,界面对象40被终止,库文件74被关闭,如步骤770所指示的那样。如果浏览器72保持活动,在步骤756,本发明判定持续循环是否已被终止。如果循环已被终止,界面对象40也被终止,如步骤770所指示的那样。如果循环仍在执行,本发明判定界面对象40是否仍显示于浏览器界面20之内,如步骤752所指示的那样。
图7中描述的本发明的实施例防止ActiveX控件卸载,其冻结库文件74(ActiveX控件代码被装载于其内)的操作,甚至在操作系统70或浏览器72生成卸载或终止库文件74的指令时也是如此。由于库文件74被冻结,并且永远不结束卸载,在库文件74被指令卸载之后,ActiveX控件在库文件74内创建的所有数据、函数与对象将继续存在和工作。
在一些操作系统70和/或浏览器72中,当ActiveX控件不再出现在因特网站点时,BIO库将被关闭。当因特网用户从具有ActiveX控件的因特网站点,例如,图10中的因特网站点130,移动到另一个不具有ActiveX控件的因特网站点,例如图10中的因特网站点230时,这也可能发生。为使得界面对象40在不存在ActiveX控件的情况下继续操作,必须防止BIO库(和库文件74)关闭。
为实现这一点,创建一个指针,其被用于控制浏览器72。优选地,该指针被全局地存储,使得库文件74内任何可能需要向浏览器72发送命令的函数或对象均可访问它。在Microsoft Internet Explorer中,比方说,可使用IWebBrower、IWebBrower2或IWebBrowerApp OLE接口命令来创建该指针。为使用Microsoft基本类库来做到这一点,可使用COleControl类的GetClientSite成员(用于与BIO库通信)来获取BIO库的因特网站点(也就是提供ActiveX控件的因特网站点)的指针。可使用前一步骤返回的IOleClientSite类的GetContainer成员来取得BIO库的容器的指针。可使用前一步骤返回的IOleContainer类的QueryInterface成员来取得IServiceProvider接口的指针。使用IServiceProvider接口来简便地查找浏览器72呈现的任何其它接口。可使用前一步骤返回的IServiceProvider类的QueryService成员来取得IWebBrowerApp、IWebBrower或IWebBrower2接口的指针,其取决于调用BIO库的浏览器72的版本所呈现的接口。
为防止库文件74关闭,在其能够终止之前,其操作被停止。为冻结或停止库文件74的操作,可创建和执行持续的程序循环,其仅当BIO库将被卸载时终止,此时,该程序循环也泵取消息队列。这里称该消息循环为消息泵,其可在循环中使用例如PeekMessage、GetMessage、TranslateMessage与DispatchMessage命令来创建。下面提供了示例性的C++代码,以执行消息泵while(m_Continue){if(PeekMessage(&msg,NULL,0,0,PM_NOREMOVE)!=0){GetMessage(&msg,NULL,0,0);TranslateMessage(&msg);DispatchMessage(&msg);}}其中m_Continue是布尔变量,其被用于指示循环何时停止,而PeekMessage、GetMessage、TranslateMessage与DispatchMessage都是Windows函数。如果m_Continue等于假,循环将结束,从而结束消息泵。msg参数是对Windows MSG结构的引用。
消息泵优选操作的方式是其使用PeekMessage函数检查消息队列中是否有任何消息在等待。如果有消息,消息泵使用GetMessage函数从消息队列中攫取该消息,并使用TranslateMessage函数将其从虚键消息译为字符消息。最后,消息泵使用DispatchMessage函数将该消息发送给应当接收该消息的原窗口消息处理过程。
也可使用操作系统70的内建能力来构建消息泵,以泵取消息队列。例如,使用诸如MFC命令CWnd∷MessageBox(“my modal”,MB_OK)等命令,模式对话框或消息框很好地服务于这个目的,可被用于提供所需要的对库文件74的操作的冻结或停止。
只要消息泵执行持续循环,甚至在因特网用户访问其它因特网站点时,ActiveX控件将不会终止。
图7所描述的本发明的实施例以与上面所描述的图6的实施例相同的方式(例如,子类化、消息处理等等)执行。
对于(图6与7的)两个上面所描述的实施例而言,为界面对象40提供退出函数,使得对象A及其所有后代将被关闭,这是优选的,尽管不是必需的。调用退出函数的可能的示例性的场景包括在BIO过程中截获到关闭浏览器窗口的消息,或者周期性地寻找浏览器窗口并且,如果未找到它,终止ActiveX控件。
接着参照图8,描述了本发明的方法的又一种实施例,其一般地指示为800。出于图8的目的,并为了下面涉及的讨论,已在因特网用户的电脑50上创建了库文件74,如这里所讨论的那样。在步骤810,因特网用户启动或激活浏览器72,以访问因特网90。在步骤820,库文件74在用户的电脑50上被打开,并且到预先确定的因特网站点130(参看,例如,图10)的连接被自动建立,如步骤830所指示的那样。在步骤832,创建新的浏览器界面,其为浏览器72提供的初始浏览器界面的副本。在步骤840,创建函数窗口(Function Window),其代表原浏览器界面,插件的功能于其中被初始地装载。
图8A描述了遵照本发明的本实施例创建函数窗口的步骤,其一般地指示为840。在步骤842,确定初始浏览器界面窗口的句柄。初始浏览器界面窗口,现在是函数窗口,在步骤844被隐藏和/或使之失效,使得其不能被关闭,否则将导致BIO库崩溃。在步骤846,创建一个指针,其被用于控制浏览器72。最后,在步骤848,创建新的浏览器界面窗口,因特网用户可使用其来继续漫游因特网。
再次参照图8,并从步骤850开始,现在可控制浏览器界面,其首先子类化任何浏览器窗口,或浏览器使用的任何窗口,其将被控制,之后添加、删除和/或修改窗口,如下面更详细地描述的那样。初始浏览器窗口消息处理过程由BIO过程所代替。在步骤860,本发明判定是否已打开任何新的浏览器窗口,也就是这样的窗口,其可能尚未遵照本发明被子类化,或者可能尚未被控制。如果已打开新的窗口,在步骤870,本发明判定是否要将界面对象40添加到这些新窗口。如果不是,本发明判定因特网用户是否想要关闭浏览器72,如步骤880所指示的那样。如果是这样,在步骤890,本发明关闭所有浏览器窗口,包括函数窗口。如果用户不想要关闭浏览器72,如步骤880所判定的那样,本发明返回到步骤860,并再次判定是否已打开新的浏览器窗口。
继续参照图8、8A与10,现在将更详细地讨论本发明的上面所述的实施例。当内容提供商100通过因特网站点130装载ActiveX控件时,典型地,作为对浏览器72建立到该网站130的连接并调用ActiveX控件的响应,使位于用户的电脑上的库文件74打开,并在浏览器72内创建外壳,ActiveX控件的代码可于其内装载。如果当ActiveX控件被关闭时(当用户终止到因特网站点130的连接时),操作系统70或浏览器72显式地指令包含ActiveX控件的库文件74卸载或关闭,在库文件74被卸载时,创建于ActiveX控件之外、库文件74之内的任何数据、函数或对象将被摧毁。为防止库文件74卸载,防止浏览器72关闭ActiveX控件,直到被指令这样做。如果永远不指令ActiveX控件关闭,就永远不卸载库文件74。
一种实现这一点的优选的方法是隐藏装载ActiveX控件的初始浏览器界面窗口和/或使之失效,并创建该窗口的新的拷贝,因特网用户可于其内继续工作和漫游因特网。由于优选地,初始浏览器界面被隐藏和/或使之失效,不能关闭ActiveX控件,直到库文件74显示、使之有效或关闭初始浏览器界面窗口,也就是装载库文件74的窗口。
优选地,图8的上面所描述的方法在浏览器72内作为标准ActiveX控件装载BIO库,其使用,比如说,<0bject>标签,其典型地包含在网页130内,或作为Band对象,如Microsoft Internet Explorer 4.x软件开发工具包所描述的那样。这指令浏览器72初始化并运行包含BIO库的代码的库文件74。
第一次初始化和调用BIO库时,创建函数窗口,当因特网用户访问其它因特网网站210,也就是其它网页时,其通过保持与ActiveX控件的会话本身打开而保持BIO库打开。函数窗口也使得不具有打开的BIO库的拷贝的浏览器窗口有可能访问浏览器72的OLE接口。
为创建函数窗口,优选地,初始浏览器界面窗口(也就是装载BIO库的窗口)被隐藏和/或使之失效。这可通过确定初始浏览器界面窗口的句柄来完成,其从BIO库的句柄开始。为从BIO库的句柄获取初始浏览器界面窗口句柄,持续调用GetParent函数(Windows函数),直到该函数调用的当前值代表桌面窗口的下一级。例如,在循环中执行诸如“m_Handle=GetParent(m_Handle)”的语句,可提供想要的功能与结果,其中m_Handle的值初始地等于BIO库的句柄的值,并且将最终返回初始浏览器界面窗口的句柄。
下一步骤是隐藏和/或使初始浏览器界面窗口(现在称之为函数窗口)失效,使得因特网用户不能关闭该函数窗口(比如说,通过关闭浏览器72),从而使BIO库从浏览器界面20卸载和去除BIO库提供的功能。为了对于用户隐藏初始浏览器界面窗口和/或使该浏览器窗口失效于用户驱动的事件,可向初始浏览器界面窗口发送WM_SHOWWINDOW和/或WM_ENABLE消息(两者均为Windows常量),取值为隐藏和/或使浏览器窗口失效。例如,可使用PostMessage或SendMessage函数(现有的Windows函数)来向初始浏览器界面窗口发送消息,其使用浏览器窗口句柄。作为另一种可供选择的方案,可使用ShowWindow与EnableWindow函数(现有的Windows函数)来获得同样的结果。
创建一个指针,以控制浏览器72。优选地,该指针被全局地存储,使得库文件74内任何向浏览器72发送命令的函数或对象均可访问它。在Microsoft Internet Explorer中,比方说,可使用IWebBrower、IWebBrower2或IWebBrowerApp OLE接口来创建该指针。为使用Microsoft基本类库来做到这一点,可使用COleControl类的GetClientSite成员,其作为浏览器72的进入点,来与BIO库通信,并获取BIO库的因特网站点,也就是装载ActiveX控件的因特网站点的指针。可使用前一步骤返回的IOleClientSite类的GetContainer成员来取得BIO库的指针。可使用前一步骤返回的IOleContainer类的QueryInterface成员来取得IServiceProvider接口的指针;优选地,使用IServiceProvider接口来查找浏览器72呈现的任何其它接口。可使用前一步骤返回的IServiceProvider类的QueryService成员来取得IWebBrowerApp、IWebBrower或IWebBrower2接口的指针,其取决于调用BIO库的浏览器72版本呈现的接口。
最后,由于先前使用来创建函数窗口的浏览器窗口已被隐藏和/或使之失效,创建新的浏览器窗口,因特网用户可以使用其来继续网上冲浪,并继续访问各种不同的因特网站点。优选地,使用IWebBrower、IWebBrower2或IWebBrowerApp OLE接口中的任何一个来创建新的浏览器窗口,比如说,使用该OLE接口的Navigate或Navigate2成员。作为另一种可供选择的方案,可向浏览器72发送WM_COMMAND消息,其响应任何这样的命令,浏览器72可使用该命令来打开新的浏览器窗口,例如新窗口命令或在新窗口中打开命令,等等。也可使用浏览器72提供的动态数据交换(DDE)支持来打开新窗口。
BIO库现在必须添加/删除/修改(即控制)各种浏览器界面特性与功能。第一步骤是子类化任何浏览器窗口,或浏览器使用的任何窗口(也就是子窗口),其将被遵照本发明进行控制。使用BIO窗口消息处理过程来替代原窗口消息处理过程,下文中称之为BIO过程。
一旦已子类化浏览器窗口,或其任何子窗口,有可能向子类添加菜单,其使用GetMenu函数获得浏览器窗口菜单的指针。一旦获得菜单的句柄的指针,可使用菜单函数,例如ModifyMenu、AppendMenu、InsertMenu等等,来向浏览器窗口添加任何想要的菜单。用来子类化BIO窗口的BIO过程必须处理任何赋予菜单的命令。不得使用与包含在浏览器中的相同的命令标识符来创建菜单。
可向浏览器界面20添加界面对象工具条42,其获取窗口的句柄(下文中称为帧句柄),界面对象工具条42将使用标准Windows函数将其添加到该窗口。典型地,该窗口将是BIO窗口,或者帧窗口,其为BIO窗口的子窗口。之后,以帧句柄为父窗口创建一个窗口。例如,要将对话框条(其为一种形式的工具条)作为界面对象40添加,创建一个CDialogBar类型(一个Microsoft基本类)或自该类型派生的对象,调用其Create方法时使用帧句柄。如果使用资源,例如,图像、工具条、对话框等等,并且浏览器72与BIO库不共享同样的资源,在可从BIO库资源装载任何数据之前,用BIO库资源临时性地替换浏览器的资源。之后,可用浏览器原先的资源替换BIO库资源。
当打开新的浏览器窗口后,可能想要向这些新窗口添加界面对象40。可创建定时器,其使用SetTimer Windows函数,其将调用用户定义的函数,该函数将使用FindWindowEx函数(Windows函数)来检查桌面窗口的每一个子窗口,以查找与函数窗口具有同样的类名的窗口。对于尚未被修改,也就是没有界面对象40的浏览器窗口而言,可获取必需的句柄,并进行与原BIO窗口相同的改变。
最后,当因特网用户想要关闭浏览器72时,必须判定是否所有的浏览器窗口均被关闭,函数窗口除外,并且如果所有其它浏览器窗口被关闭,函数窗口也必须被关闭。可通过在BIO消息处理过程中监听WM_CLOSE消息(Windows常量),或通过设置定时器来周期性地判定有多少个浏览器窗口是打开的,来实现这一点。要关闭原函数窗口,可向该窗口发送WM_CLOSE消息。
接着参照图9,描述了一种方法的另一种可供选择的实施例,该方法遵照本发明控制和显示因特网浏览器界面20,一般地指示为900。
步骤910、920和930基本上与上面所描述的图6-8的实施例相同。在步骤940,创建新的浏览器界面窗口,初始浏览器界面窗口被隐藏和/或使之失效,其称之为函数窗口。插件确定初始浏览器界面窗口的句柄,将该窗口隐藏和/或使之失效,并且创建新的浏览器界面窗口,其可被因特网用户使用。在步骤950,子类化所有浏览器窗口,之后可控制浏览器界面,如步骤960所指示的那样,以用于所有打开的窗口。在步骤962,本发明判定是否已打开任何新的浏览器窗口,在此情形下本发明返回步骤960。如果没有打开新的浏览器界面窗口,步骤962进行到步骤964,以判定因特网用户是否想要关闭浏览器。在关闭函数窗口前,必须先关闭所有窗口,其为步骤966判定。如果所有窗口被关闭,则关闭函数窗口,如步骤970所指示的那样。否则,步骤966返回到步骤964。
在本发明的又一种可供选择的实施例中,本发明提供一种方法来控制因特网浏览器界面,其使用浏览器插件,以控制(即,添加、删除和/或修改)调用的浏览器72的功能,并在用户离开装载该插件的因特网站点130之后,保留该插件的功能。
当作为对浏览器72建立到因特网站点130的连接并调用插件的响应,将浏览器插件装载到因特网用户的电脑50时,库文件74在浏览器72内创建外壳,插件的代码可于其内装载。如果当插件被关闭时,操作系统70或浏览器72显式地指令库文件74卸载,在库文件74被卸载时,创建于插件之外、库文件74之内的任何数据、函数或对象将被摧毁。为防止库文件74卸载,防止浏览器72关闭插件,直到浏览器72接收到关闭插件的指令。如果永远不指令插件关闭,也就永远不指令库文件74卸载。可通过隐藏装载插件的初始浏览器窗口和/或使之失效,并通过创建该窗口的新的拷贝,因特网用户可继续使用其访问和漫游因特网,来实现这一点。由于优选地,初始浏览器窗口被隐藏和/或使之失效,不能关闭插件,直到库文件74选择显示、使之有效或关闭装载插件的初始浏览器窗口。
例如,在浏览器72内作为标准插件装载浏览器插件,优选地,其在网页110(参见例如图10)使用<Embed>标签,其指令浏览器72初始化并装载包含插件代码(也就是BIO库)的库文件74。
第一次初始化和调用BIO库时,创建函数窗口,其隐藏和/或使原浏览器窗口失效,从而防止BIO库卸载,其保持与插件的会话本身打开。函数窗口也使得不具有打开的BIO库的拷贝的浏览器窗口有可能访问用于插件的内建的应用编程接口(API)(也就是通过插件功能实现的因特网用户可经由浏览器界面20获得的功能),例如由NetscapeNavigator与Microsoft Internet Explorer所提供的。
优选地,创建函数窗口,其在浏览器72第一次调用插件时,隐藏和/或使初始浏览器窗口(插件处于其内)失效。为实现这一点,插件必须首先确定初始浏览器窗口的句柄。将NPWindow结构的窗口成员作为NPP_SetWindow函数的第二个参数从浏览器72传递给BIO库,该成员为插件窗口的句柄(NPWindow和NPP_SetWindow是Netscape和Internet Explorer用于插件的API的一部分)。为从该窗口成员获取初始浏览器窗口句柄,持续调用GetParent函数(Windows函数),直到该函数调用的当前值代表桌面窗口的下一级。例如,在循环中执行诸如“m_Handle=GetParent(m_Handle)”的语句,可提供想要的功能与结果,其中m_Handle的值初始地等于NPWindow结构的句柄的值,并且将最终返回初始浏览器窗口的句柄。
之后,隐藏和/或使初始浏览器窗口失效,使得因特网用户不能关闭该函数窗口,从而导致BIO库崩溃。为了对用户隐藏初始浏览器窗口和/或使该窗口失效于用户驱动的事件,可向初始浏览器窗口发送WM_SHOWWINDOW和/或WM_ENABLE消息(两者均为Windows常量),取值为隐藏和/或使浏览器窗口失效。可以通过,例如,使用PostMessage或SendMessage函数(Windows函数)来向初始浏览器窗口发送消息,其使用浏览器窗口句柄,来实现这一点。作为另一种可供选择的方案,可使用ShowWindow与EnableWindow函数(Windows函数)来获得同样的结果。
最后的步骤是创建新的浏览器窗口,在初始浏览器窗口已被隐藏和/或使之失效后,因特网用户可以使用其来继续网上冲浪。可以通过,比如说,调用下列Netscape与Internet Explorer插件API函数中的任何一个NPN_GetURL、NPN_PostURL、NPN_GetURLNotify、NPN_PostURLNotify,其中目标参数设置为_new、_blank或尚未存在的任何窗口名,来实现这一点。上面函数的NPP参数为NPP结构,浏览器72将其提供给函数窗口的插件。做到这一点的另一种方法是向浏览器72发送WM_COMMAND消息,其响应任何这样的命令,浏览器72可使用该命令来打开新的浏览器窗口,例如新窗口命令或在新窗口中打开命令。也可使用浏览器提供的动态数据交换(DDE)支持来打开新窗口。NPN_GetURL、NPN_PostURL、NPN_GetURLNotify、NPN_PostURLNotify和NPP结构是Netscape和Internet Explorer用于插件的API的一部分,WM_COMMAND是Windows常量。
BIO插件现在可控制(即,添加/删除/修改)浏览器72的特性与功能。第一步骤是子类化任何浏览器窗口,或浏览器使用的任何窗口(统称BIO窗口),其将被遵照本发明进行控制。
一旦已子类化浏览器窗口,或其任何子窗口,有可能向浏览器界面20添加菜单,其使用GetMenu函数(Windows函数)获得浏览器窗口菜单的指针。一旦获得菜单的句柄的指针,可使用菜单函数,例如ModifyMenu、AppendMenu、InsertMenu等等(Windows函数),来向浏览器窗口添加任何想要的菜单。用来子类化BIO窗口的BIO过程必须处理任何赋予菜单的命令,不得使用与包含在浏览器72中的相同的命令标识符来创建菜单。
作为另一种可供选择的方案,或者附加地,可向浏览器界面20添加界面对象工具条42,其获取窗口的句柄(下文中称为帧句柄),工具条42将使用标准Windows函数添加到该窗口;典型地,该窗口将是BIO窗口,或者帧窗口,其为BIO窗口的子窗口。之后,以帧句柄为父窗口创建一个窗口。例如,要将对话框条(其为一种形式的工具条)作为界面对象40添加,可创建一个CDialogBar类型(一个Microsoft基本类)或自该类型派生的对象,调用其Create方法时使用帧句柄。如果使用资源,例如,图像、工具条、对话框等等,并且浏览器72与BIO库不共享同样的资源,在可从BIO库资源装载任何数据之前,用BIO库资源临时性地替换浏览器的资源。之后,可用浏览器原先的资源替换BIO库资源。
当打开新的浏览器窗口后,可向这些新窗口添加界面对象40。可通过创建定时器,其使用SetTimer(Windows函数),其将调用用户定义的函数,该函数将使用FindWindowEx函数(Windows函数)来检查桌面窗口的每一个子窗口,以查找与函数窗口具有同样的类名的窗口,来实现这一点。对于尚未具有被修改的界面,也就是不包含界面对象40的新窗口而言,可获取必需的句柄,并对这些窗口进行与原BIO窗口相同的改变。
最后,当因特网用户希望关闭浏览器72时,必须判定是否所有的浏览器窗口均被关闭,函数窗口除外,并且如果它们是这样,函数窗口可被关闭。可以,比如说,通过在BIO窗口消息处理过程中监听WM_CLOSE消息(Windows常量),或通过设置定时器,周期性地检查打开的浏览器窗口的数量,来实现这一点。可通过向其发送WM_CLOSE消息来关闭原函数窗口。
遵照本发明,可装载BIO库(也就是插件),其功能自动地,也就是不要求用户主动地访问特定因特网站点,也就是浏览调用该插件的网页,提供于浏览器界面20内。例如,Netscape在其Windows注册表内有一个标识为自动启动(Automation Startup)的键。在激活时,Netscape装载列于自动启动键内的所有OLE控件。通过在自动启动键内放置对库文件74(从而对BIO库与插件,其定义界面对象40)的引用或调用,可在每次用户启动或激活Netscape浏览器时装载该库文件。可在该库文件74内包含在浏览器界面20内创建界面对象40的实例的指令,以及让浏览器72建立到预先确定的因特网站点130的连接的指令。使用此技术,用户不必选择访问特定因特网站点130以装载BIO库。需要保持库文件74打开,至少直到可在浏览器72内装载插件,以通过浏览器界面20显示和访问。做到这一点的一种方法是增加与库文件74相关联的引用计数,使得当Netscape卸载自动启动键内列出的OLE控件时,将不会卸载库文件74,因为其具有更高的引用数。
可将库文件74作为插件装载,使用DDE周期性地查找NetscapeDDE服务器,其使用定时器或循环。当浏览器72从Netscape DDE服务器接收到返回时,Netscape准备接收命令,并可装载插件。之后,可使用DDE来向浏览器72发送命令,例如WWW_OPENURL,其将使插件装载,如这里所讨论的那样。
另一种用于BIO库的隐藏Netscape插件窗口的方法是将其从任务条(也就是Windows“开始”按钮所处的地方)去除,并将其放置于可视的屏幕之外。一种将其从任务条去除的方法是调用SetWindowLong,并将插件窗口的窗口样式改为工具箱窗口。工具箱窗口不显示在工具条内。可通过调用MoveWindow,并提供不在用户桌面的可视范围之内的坐标,来将Netscape插件窗口放置于屏幕之外。
用于替代原浏览器消息处理过程的BIO窗口消息处理过程必须知道一个消息准备到达哪个窗口,以及BIO窗口消息处理过程接收到消息后如何动作。做到这一点的一种优选的方法是创建映射表,其将一条信息链接到另一条。对于本发明而言,优选地使用这样的映射表,其将窗口句柄链接到包含该窗口的重要信息的结构。例如,当BIO库将界面对象40添加到新的浏览器窗口时,在映射表内创建新条目,其将该BIO窗口的句柄链接到包含对该BIO窗口有用的信息的结构。优选地,包含在该结构内的信息中的一条是用于该BIO窗口的浏览器的原窗口消息处理过程。有必要维护浏览器的原窗口消息处理过程,使得如果BIO窗口消息处理过程不知道如何处理一条消息,它可以将该消息传递到浏览器的原窗口消息处理过程。
当BIO窗口消息处理过程接收到一条消息时,传递给该过程的第一参数是接收该消息的窗口的句柄。为获取包含所有该窗口特定的数据的结构,使用该窗口句柄作为键,在映射表内执行查找。返回的结构将包含所有保存的窗口特定的信息,例如原窗口消息处理过程。
当控制浏览器界面20时,也即添加、删除或修改浏览器界面时,本发明改变浏览器72工作的方式。因特网用户使用浏览器可以做的几乎所有事情都通过向浏览器的窗口或子窗口发送消息来工作。发送消息的对象或窗口包括菜单、按钮、组合框以及几乎所有其它的东西,因特网用户能够直接与其交互,例如界面控件。例如,消息可以分为四个部件1)准备接收该消息的窗口的句柄;2)该消息的msg值;3)wParam,其使用通常依赖于msg值;和4)1Param,其值通常也依赖于msg值。
例如,点击浏览器的窗口内的按钮可以向浏览器窗口的窗口消息处理过程发送这样的消息,其包含WM_COMMAND,其为Windows常量,msg值。该消息内的wParam变量的两个低字节将是一个数,其用于标识哪个按钮被按下。
通过子类化浏览器的窗口或子窗口,如上面所描述的那样,可截获用户与任何界面控件交互式发送的任何消息。一旦截获到消息,BIO窗口消息处理过程可以解释它并对它做出反应。如果界面控件的功能保持不变(也就是本发明不添加、删除或修改),可将该消息传回原窗口消息处理过程。这样,基本上可以控制所有存在于浏览器72内的界面控件。另外,可将界面控件添加到浏览器界面20,并向其赋予命令标识符(其在wParam内传递)。之后,BIO窗口消息处理过程可以解释wParam并提供要被装载的界面控件的功能。另外,可以去除功能,其在接收到与要从浏览器上去除的界面控件相关联的命令标识符时,简单地让发明的窗口消息处理过程不做任何事情。这样,可防止该命令传递到浏览器窗口的原消息处理过程。
使用本发明的各种实施例,如上面详细地讨论的那样,因特网用户可创建具有用户定义的界面控件的浏览器界面20。之后,通过将该浏览器界面20的窗口的父窗口设置为已被子类化的窗口,任何来自该新(也就是受控的)窗口的消息将在BIO窗口消息处理过程中处理。其可用来向浏览器界面20添加任何界面对象40,例如工具条、对话框条、浮动对话框等等。
提供下面的阐述性的、非限制性的应用范例,以进一步描述本发明。当因特网用户漫游因特网时保持持久的插件或ActiveX控件可向浏览器界面20添加界面对象40,其使得用户能够从位于因特网上的数据库下载他们的“书签”或“收藏(favorites)”。界面将直接添加到浏览器界面,并将允许用户访问他们下载的“书签”或“收藏”链接,其使用插件或ActiveX控件提供的界面对象40。该界面对象40将提供与现有浏览器上的目前的“收藏”或“书签”菜单项和工具条类似的功能。有利的区别在于,由于书签将从因特网上的数据库下载,用户可在任何电脑的有能力装载插件或ActiveX控件的浏览器上访问他们的书签。
也可用本发明生成收入,其基于通过插件或ActiveX控件在浏览器界面20上放置包含于“收藏”或“书签”之内的广告“链接”。消费者的选择(consumer targeting)可基于,比如说,存储于数据库内的信息,例如姓名、年龄、性别、收入、种族、教育与地理位置,以及偏好,例如收藏、书签或者存储于数据库上或存在于浏览器72上的其它偏好。
可使用当用户漫游因特网时保持持久的插件或ActiveX控件来向浏览器界面20添加界面对象40,其允许用户从位于因特网上的数据库下载他们的“地址簿”。这样的界面对象40可直接添加到浏览器界面20的界面,并且将允许用户发送电子邮件,以及获取列于他们的“地址簿”之内的保存的联系人信息。
也可用本发明赚取收入,其基于在插件或ActiveX控件的界面对象40上放置包含于“地址簿”之内的广告“链接”。消费者的选择(consumer targeting)可基于,比如说,存储于数据库内的信息,例如姓名、年龄、性别、收入、种族、教育与地理位置,以及偏好,例如收藏与书签或者存储于数据库上或存在于浏览器72上的其它偏好。
本发明可使用插件或ActiveX控件来在浏览器界面20上添加编辑框,其允许用户在浏览器内直接输入搜索,而不必访问允许用户进行搜索的网页。
另外,甚至在用户正在浏览不同的网站时,保持持久的插件或ActiveX控件可以从优选的网站轮询,或者周期性地搜索(以用户、网站或程序选择的间隔)信息。当轮询优选的网站时,该优选的网站可以向用户的浏览器上的界面对象发送更新后的信息,例如接收邮件的接近实时的通知,股票价格的持续更新,或其它时间敏感的信息,例如,新闻头条(news feed headline)、所选的喜爱的运动队的比赛得分等等。如果需要的话,优选的网站可以控制轮询的定时,从而在使用高峰期间通过延长轮询之间的时间间隔来控制该优选的网站上的流量。
由于库文件创建的外壳,如这里所描述的那样,是这样一个环境,可于其内运行应用程序,或者显示信息,可使用本发明向浏览器的界面添加任何信息或程序。该外壳独立于浏览器界面,浏览器的内容,甚至该外壳本身的内容。简单地说,该外壳是可适配的功能片,极端地,它甚至不必是用户可见的。因此,在使用中,该外壳可以为空,并从网站接收其内容,或者该外壳可取得插件,或者该外壳甚至可以取得新的库文件并且在该外壳从网站或用户接收新内容时“在飞行中”学习解析新信息。这样,本发明提供显著的机会,以将来自优选的站点的所需要的信息指引给用户,甚至在用户访问其它站点时也是如此。当然,网站用本发明的可订制的界面提供的用户特定的功能越多,该网站可产生的用户忠诚度也越大。
在本发明的另一个实施例中,并且现在参照图11-17,可向因特网浏览器界面的工具条添加购物助理按钮,以便利在所支持的商户网站上在线购物。该实施例的功能,包括定义购物助理按钮,由从服务器传输并存储在用户的电脑上的电脑代码来提供。电脑代码监控因特网浏览器的因特网导航,以判定该浏览器是否在所支持的商户网站上,当该因特网浏览器在所支持的商户网站上时为购物助理按钮提供指示,并填写所支持的商户结账网页。
如这里所使用的,术语“在线购物”是指这样的过程,因特网浏览器的用户可通过该过程使用电脑在因特网上购买商品和/或服务。在线商户(例如因特网上的商品和/或服务的销售者)可提供网站,其建立在商户服务器上,用户可使用因特网浏览器通过该网站访问一个或多个网页。商户可通过一个或多个网页提供各种商品和/或服务的销售。购物者可查看商品,服务的描述,选择各种商品和/或服务以放置到电子购物车,查看该电子购物车的内容,并且结账(如下面更详细地描述的那样)。
图11中描述的浏览器界面20包含界面对象40,其包括界面对象工具条42,以及购物助理按钮144,其向浏览器界面20提供各种功能,包括,但不限于,浏览器界面20的用户(术语用户与购物者在这里可互换使用)创建和编辑电子钱包的能力(下面更详细地讨论),使购物助理按钮144(以及浏览器界面20的购物功能)失效,罗列所支持的商户,查询关于购物助理按钮144、下拉菜单44、与购物助理按钮144提供的功能,以及查询关于购物助理按钮144的使用及提供的功能的帮助。购物助理电脑代码或软件(例如,.dll或.exe文件、javascript等等)由服务器提供,并存储在用户的电脑50上,并可结合浏览器与浏览器界面20进行操作,以定义和提供购物助理按钮144和遵照本发明提供的其它功能,如下面更详细地描述的那样。
在优选实施例中,当将界面对象40添加到浏览器界面20时,购物助理按钮144及提供的功能被提供,如上面结合本发明的各种实施例所详细地描述的那样。也就是说,当将界面对象40(即工具条)添加到浏览器界面20时,购物助理按钮144及相关联的电脑代码被传输或下载到用户的电脑50上。作为另一种可供选择的方案,可按照用户的请求,也就是在添加界面对象40之前或之后,将购物助理按钮144及功能选择性地添加到浏览器界面20。
至少在第一个实例中,服务器102(其可包括一台或多台电脑,其位置在物理上相互靠近,或在物理上相互分离)(参见,例如,图10)遵照本发明的本实施例提供购物助理功能,当用户在浏览器界面20的URL地址窗口26提供预先确定的因特网地址或URL时,可访问该服务器。优选地,服务器102是安全服务器(也就是仅可通过安全套接字层(SSL)连接访问)。在该预先确定的因特网地址上,用户可访问一个或多个网页,其中至少一个使得用户能够遵照本发明的本实施例建立钱包。图12-14描述了示例性的钱包建立网页,下面更详细地讨论之。
服务器102下载到用户的电脑50上的购物助理电脑代码或软件也提供购物助理功能,其可结合浏览器界面20与购物助理按钮144进行操作。购物助理代码可以是.dll或.exe文件,比如说,javascript,或其它已知类型的电脑代码或软件文件。购物助理代码监测因特网浏览器的因特网导航,其在每次用户使浏览器导航到不同的因特网地址时,截获因特网地址(或者域或URL)。购物助理代码也对截获的因特网地址和所支持的商户的因特网地址进行比较,其对截获的地址与包含所支持的商户的因特网地址的所支持的商户文件进行比较。优选地,所支持的商户文件由服务器102下载,并存储在用户的电脑50上。每次用户登录服务器102,服务器102将其所支持的商户文件的版本与存储在用户的电脑50上的版本(例如,用户可在登录过程中传输该版本信息)进行比较。如果有必要,服务器102将更新版本的所支持的商户文件下载到用户的电脑。购物助理代码也截获浏览器接收的每个网页,并通过HTML代码与http请求报头来判定网页的类型(例如,账单网页、商户主页、商品页等等)。
购物助理代码还定义购物助理按钮144与下拉菜单44,并控制浏览器、服务器102与商户服务器之间的通信,以进行在线购物。
购物助理按钮144可作为界面对象40的一部分提供,其遵照本发明的各种实施例。然而,用户为利用和访问购物助理功能,该用户必须首先建立钱包。如这里所使用的那样,术语“钱包”是指针对用户的文件(其可以是编码的或加密的),其包括为该用户订制的信息(这里也称为数据),其由该用户提供,并存储于服务器102(参见,例如,图10)的数据存储设备(例如,硬盘驱动器、光盘等等)上提供的钱包数据库104内。组织钱包数据库106104的结构,使得用户在建立钱包时提供的信息存储于预定义的字段或字段名内。类似地,使用同样的字段或字段名来组织所支持的商户文件的结构,使得商户结账网页要求与在钱包建立过程中提供的相同的信息。
为建立钱包,用户必须提供特定信息,作为对服务器102提供的特定钱包建立网页的响应。本领域技术人员知道,因特网浏览器从服务器接收数据,典型地为HTML数据,用于浏览器界面20的显示。因此,这里的对服务器提供的网页的引用是指从服务器下载或传输数据,用于因特网浏览器的显示。
图12描述了示例性的钱包建立网页,其一般地指示为1000。可以,比如说,通过购物助理按钮144的下拉菜单44上的“编辑钱包”选项来访问该网页1000。通过在钱包建立网页1000上选择预先确定的链接,比如说,“建立你的钱包”链接1002,服务器102下载钱包数据条目网页1010,例如如图13所描述的那样。在钱包数据条目网页1010,用户在多个字段1012(下拉菜单或字母数字条目)内输入特定信息。该信息可以是,但不限于,信用卡类型、号码、过期日期、用户的名和姓、账单地址、电话号码、用户ID、用户密码和针对该用户特定的各种其它信息。当建立钱包时,除用户的ID和密码之外,还要求每个用户输入安全钥匙(参见,例如,图16),其为必需项,以访问和使用该用户的钱包。当用户完全填写钱包数据条目网页1010上的所有必需的字段1012时,用户可选择“结束”按钮(未显示),其向服务器102发送用户输入的信息。作为响应,服务器102下载钱包小结网页1020,其包括用户的新近输入的账号信息的小结1022,以在最后建立用户的钱包之前供用户回顾,如图14所描述的那样。如果用户信息是正确的,用户可选择钱包小结网页1020上的链接,例如,“点击此处继续……”链接1024,其使用户信息(数据)被发送到服务器102并存储到数据存储设备106上的钱包数据库104内。在方才描述的钱包建立过程期间,数据在服务器102与用户的电脑50之间传输(参见,例如,图10)。例如,当用户选择“建立你的钱包”链接1002时,网页1000(图12)和1010(图11)均可被服务器102发送,以供用户的浏览器界面20显示。当用户已完成钱包数据条目网页1010上必需的信息并选择“结束”按钮(未显示)时,可将用户信息或数据发送到服务器102。当从用户的电脑50接收到用户信息时,服务器102可发送钱包小结网页1020。作为另一种可供选择的方案,服务器102可分别发送每个上面所描述的网页,作为对用户发起的行动的响应(例如在用户选择链接或按钮时)。
服务器102可属于内容提供商100或其它因特网服务提供商,例如,搜索引擎提供商或ISP,这里统称为提供商100。提供商100选择在线商户,本发明的购物功能可结合其使用。所支持的商户文件包含所有所支持的商户的列表,包括它们各自的因特网地址。购物助理电脑代码可使用该文件来判定用户是否已导航到所支持的商户网站,其比较输入到URL地址窗口26的URL(或由链接提供)与所支持的商户文件内包含的URL。
一旦已选择商户(在图10中商户被一般地指示为200),提供商100判定该商户的结账过程,包括结账网页的布局(参见,例如,图17),以及完成该商户的结账过程与结账网页所必需的信息。提供商100为每个选中的商户(这里也称为所支持的商户)创建所支持的商户规则与映射文件,其定义多个商户字段名,其对应于商户在其结账过程与其结账网页期间所要求的用户数据。例如,并且参照图17,所支持的商户结账网页2100要求购物者提供账单信息,包括,比如说,支付方式、信用卡号、过期日期以及该购物者的个人信息(例如,姓名、地址与电话号码)。商户字段名对应于定义在用户的钱包内的钱包字段名。由于每个商户在其结账过程期间可能要求不同的信息,每个所支持的商户规则与映射文件可包含不同的商户字段名。然而,所有商户字段名对应于钱包字段名。
所支持的商户规则与映射文件将钱包数据(也就是钱包字段名)映射到必需的商户数据(也就是商户字段名)。例如,可组织商户规则与映射文件内定义名字段与姓字段的条目的结构如下rmi_pageFields[1]=new rmi_fieldMap(“contactFirstName”,“text”,“wallet_b_fname_first”);rmi_pageFields[2]=new rmi_fieldMap(“contactLastName”,“text”,“wallet_b_fname_last”);其中“wallet_b_fname_first”是用于用户的名的钱包数据库字段名。然而,在所支持的商户文件中,用户的名被标识为“contactFirstName”。因此,本发明将钱包数据库内的字段映射到所支持的商户文件内的字段,使得当用户在所支持的商户网站上购物时,每个商户订单表格可被自动填写。
现在参照图15-17,现在将描述示例性的结账过程。由于不同的商户可能有不同的结账过程,并提供不同的结账网页,下面的描述仅仅是阐述性的,而无意限制本发明的范围,或以其它方式定义本发明。另外,下面的描述不追踪整个在线购物过程(其也可能在不同商户之间有所不同),而仅是结账过程,一般地,其开始于用户在商户网页上选择“结账”或其它类似的按钮之后。
当用户启动他们的因特网浏览器时,界面对象40在用户的电脑50与服务器102之间自动建立连接。服务器102将各种用户数据下载到用户的电脑50。用户可通过在URL地址窗口(参见,例如,图11)内输入地址,或通过选择网页上的链接,使因特网浏览器导航到任何因特网地址。无论如何使浏览器导航因特网(从一个网站移动到另一个网站),购物助理代码截获用户导航的每一个因特网站点的URL,并将该URL与所支持的商户数据文件进行比较。如果找到匹配,购物助理代码在购物助理按钮144上提供用户可察觉的指示符,例如黄色的圆圈,其指示用户已导航到所支持的商户网站。购物助理代码也请求服务器102下载这样的文件,其包含该商户的规则与映射数据,并提供该商户的结账过程的细节。
购物助理代码也截获浏览器接收的每个网页,以通过查看HTML代码与http请求报头来判定网页的类型,例如,账单网页、电子邮件地址请求、信用卡信息请求等等。该信息在提供商选择商户以及创建所支持的商户数据文件期间获得。使用商户的规则与映射文件,购物助理代码能够判定特定页面被提供,以及应该如何在该页面内提供用户的信息。
如果购物助理代码判定用户的钱包对特定页面是必需的,它在用户的浏览器界面20内打开安全钥匙窗口3000,请求用户在数据条目窗口3020内输入安全钥匙(SK),如图15所描述的那样。一旦用户输入SK,并选择“继续”按钮3030,用户的电脑50向服务器102安全地发送该安全钥匙,其优选地使用https。服务器102将用户数据(例如,ID与SK)与先前存储在钱包数据库106上的该用户的钱包内的数据进行比较。如果数据匹配,则SK被验证通过,并且服务器102向购物助理代码发送认证;如果数据不匹配,则发送拒绝。认证可作为钱包信息窗口3100来提供,例如如图16所描述的那样。当服务器102成功地验证通过SK时,通过SSL向安全服务器发送“安全cookie”,并且当该“安全cookie”被设置时,该用户使用他的/她的钱包的在线购物会话开始。“安全cookie”会主动地过期(aggressively time out),优选地,在不超过一(1)小时内有效。
如果用户想要使用本发明的购物助理功能继续结账过程,该用户可选择“继续”按钮3130。如果用户想要使用商户的结账过程结账,该用户可选择“取消”按钮3140。当用户选择“继续”按钮3130时,购物助理代码从服务器102上的钱包数据库104获取用户的钱包,并且自动地填写商户的结账网页2100,如图17所描述的那样。服务器102安全地发送用户的钱包,其优选地使用https。用户的钱包,以及用户的个人数据,无需存储在用户的数据存储设备52上,而只需存储在临时性的内存(这里也称为主内存或RAM)60内,通过并结合本发明的本实施例的购物助理代码与功能使用。用户的数据可自动地过期(例如预定时间之后),或者可在用户关闭浏览器时将其从内存60清除。
依赖于浏览器显示的网页的类型,购物助理代码从用户的钱包(RAM内的临时性的数据)向该网页提供适当的用户数据。例如,如果购物助理代码判定网页是“账单地址”网页,将从RAM拷贝该用户的账单地址数据,以填写该账单地址网页内的字段,并最终发送给商户的服务器。在结账过程期间,购物助理代码结合商户规则与映射文件和用户的钱包进行操作,以自动地提供各种商户结账网页所要求的用户数据。
钱包数据库106可以仅包含钱包数据,或者作为另一种可供选择的方案,数据库内可包含钱包数据和其它数据。虽然优选地,钱包是通过并结合购物助理按钮144与功能使用的,钱包也可由购物助理之外的其它应用程序,例如,账单支付,无购物助理的购物,并结合基本上任何要求用户输入个人数据的在线交易来使用。钱包提供安全传输和对用户的数据的处理,并使得用户可结合各种在线交易来使用该数据,而无需不必要地危及该数据的安全性。
一旦用户建立钱包,遵照本发明的本实施例提供的功能现在作为用户在线商店对用户开放。优选地,无论用户(通过因特网浏览器)连接到哪个因特网站点,在线购物功能对结合所支持的商户的使用开放。因此,用户无需连接到提供商的因特网站点,甚至所支持的商户的网站。购物助理代码处理用户(用户的电脑50)、服务器102、钱包数据库104与商户的因特网站点和结账网页之间的所有通信。
遵照本发明的另一个实施例,提供商102之外的一方可将按钮44(也就是界面对象)添加到浏览器界面工具条,例如界面对象工具条42(参见,例如,图4)。例如,可在公司网站上提供链接,使得该网站的访问者能够将按钮44添加到他们的界面对象工具条42,该按钮将提供从浏览器界面20到该公司网站的单击链接。由于将公司按钮添加到界面对象工具条42使得用户能够通过单击鼠标从任何其它网站返回到该公司的网站,公司或维护网站的任何实体,可赞助提供商100。这样,将公司按钮添加到浏览器界面(也就是工具条42),在用户和公司网站之间建立起亲和力。公司赞助商设计按钮(例如,外观(单击按钮或下拉菜单)、图标等等),并将按钮设计与URL数据提供给提供商100,以集成到该提供商维护的数据库,并与浏览器界面相关联。这样,公司赞助商可拥有定义于提供商数据库中的按钮。
如果公司网站的访问者想在他们的浏览器界面20内安装公司按钮,但是没有安装浏览器界面工具条42,本发明也允许在浏览器界面20内安装浏览器界面工具条42与公司按钮44。另一方面,公司按钮44可添加到浏览器界面20的工具条22,或者可作为界面对象工具条42的按钮44添加。
本发明还可作为教导工具使用。例如,界面对象工具条42可包括多个按钮44,其可被使改变颜色、闪烁、高亮等等,以将用户的注意力指引到该按钮或该按钮提供的功能。
本发明还可允许提供商或公司赞助商在用户访问竞争网站时,将该提供商或公司赞助商的特定属性通知给用户。例如,当用户访问汽车网站时,相应的提供商属性(例如,提供商汽车)将高亮,以提醒用户该特性可在该提供商网站上获得。可在用户的电脑上提供软件,以在每次用户使浏览器导航到网站时,截获URL。截获的URL可与包含多个URL的文件进行比较,以用于提供商属性。
重要地,用户的电脑单独判定在任何特定时刻用户导航到哪个网站。因此,没有向任何服务器发送关于用户在因特网上的活动的信息。
对于本领域技术人员而言,并且根据这里提供的公开信息,显然的是,可使用在用户的电脑上和各种服务器上提供的软件来执行本发明的各种实施例。
需要知道的是,可利用任何数量的电脑技术来实现本发明。例如,尽管结合因特网来公开呈现各个实施例,可以在任何电脑网络上使用本发明,包括,比如说,广域网。类似地,用户电脑50可以是可以连接到网络的任何设备,包括,比如说,个人数字助理、支持上网的蜂窝电话、拨号到网络的固定电话、移动电脑、个人电脑、因特网设备等等。进一步地,这里描述的服务器可以是任何类型,运行任何软件,并且这里描述的软件模块、对象与插件可以用任何编程语言写成。最后地,这里描述的数据库与存储设备可使用任何存储技术,包括,比如说,本地电脑内存,网络存储,以及任何已知的存储介质,例如磁(介质)或光(介质)。
这样,尽管显示、描述和指出了本发明的基本的新奇的特性,如适用于优选实施例的那样,需要知道的是,本领域技术人员可对所公开的发明的形式与细节进行各种删节与替代,而不偏离本发明的精神。因此,其仅受所附的权利要求书的范围的限制。
权利要求
1.一种有助于购物者在支持的商户网站上在线购物的方法,购物者拥有已安装因特网浏览器的电脑,所述方法包括以下步骤(a)向电脑发送代码,以在因特网浏览器工具条中添加购物助理按钮;(b)在服务器的数据库中为购物者创建钱包,钱包的安全由先前从购物者处接收的第一安全密钥保证;(c)从购物者处接收第二安全密钥;(d)对比第一和第二安全密钥;(e)如果所述第一和第二安全密钥相同,将所述钱包发送给电脑。
2.如权利要求1所述的方法,还包括为支持的商户提供支持商户规则和映射文件的步骤,其中所述步骤(a)还包括发送电脑代码,从而使用所述钱包和所述支持的商户规则和映射文件来自动填写支持的商户网站的结账网页。
3.如权利要求1所述的方法,其中,所述购物助理按钮包括下拉菜单。
4.如权利要求1所述的方法,其中,所述步骤(b)包括发送网页信息以通过因特网浏览器显示;接收购物者在网页中输入的购物者数据;和在数据库中存储至少一部分购物者数据作为钱包。
5.如权利要求1所述的方法,其中,所述步骤(a)还包括通过获取使因特网浏览器导航到的每个因特网站的因特网地址,发送电脑代码以监控因特网浏览器的因特网导航。
6.如权利要求5所述的方法,还包括为支持的商户提供支持商户规则和映射文件的步骤,其中,所述步骤(a)还包括发送电脑代码,从而使用所述钱包和所述支持的商户规则和映射文件来自动填写支持的商户网站的结账网页。
7.如权利要求1所述的方法,还包括为支持的商户提供支持商户规则和映射文件的步骤,其中,所述步骤(a)还包括发送电脑代码,从而确定一个商户网站是否是支持的商户网站。
8.如权利要求7所述的方法,其中,所述步骤(a)还包括通过比较使因特网浏览器导航到的每个因特网站的因特网地址与支持商户数据文件,来确定一个商户网站是否是支持的商户网站。
9.如权利要求7所述的方法,其中,当因特网浏览器访问支持的商户网站时,所述电脑代码提供了购物助理按钮的指示。
10.如权利要求1所述的方法,其中,所述步骤(a)还包括发送电脑代码以获取浏览器接收到的每个网页,并通过所获取网页中的HTML代码和http请求报头来确定网页类型。
11.如权利要求1所述的方法,其中,所述步骤(e)包括向电脑发送安全cookie。
12.一种可由因特网浏览器显示在电脑显示器上的因特网浏览器界面,包括工具条;和所述工具条中的购物助理按钮,由可操作电脑处理器的电脑代码定义,用于获取使因特网浏览器导航到的每个因特网站的因特网地址;确定使因特网浏览器导航到的一个网站是否是支持的商户网站;和如果所述网站是支持的商户网站,则使用钱包与支持的商户规则和映射文件自动填写所支持的商户网站的结账网页。
13.如权利要求12所述的因特网浏览器界面,其中,所述确定步骤包括通过比较使因特网浏览器导航到的每个因特网站的因特网地址与支持的商户数据文件,来确定使因特网浏览器导航到的一个网站是否是支持的商户网站。
14.如权利要求12所述的因特网浏览器界面,其中,所述购物助理按钮包括下拉菜单。
15.如权利要求12所述的因特网浏览器界面,其中,所述电脑代码还可操作处理器来为所述因特网浏览器界面添加工具条和购物助理按钮。
16.如权利要求12所述的因特网浏览器界面,其中,当使因特网浏览器导航到支持的商户网站时,所述购物助理按钮提供了指示。
17.如权利要求12所述的因特网浏览器界面,其中,所述电脑代码还可操作处理器来获取浏览器所接收的每个网页,并由所获取网页中的HTML代码和http请求报头来确定网页类型。
18.一种有助于拥有带有因特网浏览器的电脑的购物者在线购物的系统,所述系统包括服务器,其包括数据存储设备,其中包含数据库;和可操作软件的处理器,用来发送购物助理电脑代码,为因特网浏览器的工具条添加购物助理按钮;接收钱包数据,所述钱包数据包括来自购物者的第一安全密钥,并在数据库中为购物者创建钱包,由所述第一安全密钥保证所述钱包的安全;从购物者处接收第二安全密钥;对比所述第一和第二安全密钥;如果所述第一和第二安全密钥相同,将所述钱包发送给电脑。
19.如权利要求18所述的系统,其中,所述服务器是安全服务器。
20.如权利要求18所述的系统,其中,所述处理器还可以操作软件,以在购物者使因特网浏览器导航到支持的商户网站时提供支持商户规则和映射文件,并且所述购物助理代码可使用所述钱包和所述支持的商户规则和映射文件,来自动填写支持的商户网站的结账网页。
21.一种有助于购物者在支持的商户网站上在线购物的方法,所述购物者拥有其中已安装因特网浏览器的电脑,所述方法包括步骤发送电脑代码以在因特网浏览器中添加购物助理按钮,其中,所述电脑代码能够获取使因特网浏览器导航到的每个因特网站的因特网地址,确定使因特网浏览器导航到的网站是否是支持的商户网站,而且如果该网站是支持的商户网站,则使用钱包和支持的商户规则和映射文件来自动填写支持的商户网站的结账网页。
22.如权利要求21所述的方法,其中,所述的发送步骤还包括发送电脑代码以在因特网浏览器中添加购物助理按钮和工具条。
23.如权利要求21所述的方法,其中,当使因特网浏览器导航到支持的商户网站时,所述购物助理按钮还提供指示。
24.如权利要求21所述的方法,其中,所述电脑代码通过比较使因特网浏览器导航到的每个因特网站的因特网地址与支持的商户数据文件,来确定使因特网浏览器导航到的一个网站是否是支持的商户网站。
25.一种动态控制可由浏览器显示在电脑显示器上的因特网浏览器界面的方法,文件位于电脑数据存储设备中并定义了购物助理界面对象,所述方法包括以下步骤(a)当电脑和浏览器的用户启动浏览器时,打开文件;(b)使浏览器与预设的因特网站点之间建立连接;(c)从预设的因特网站点接收用来定义全部或部分购物助理界面对象的信息到文件中;(d)当浏览器启动时,随因特网浏览器界面一起,在电脑显示器上显示购物助理界面对象;和(e)当浏览器启动时,防止文件关闭。
26.如权利要求25所述的方法,还包括以下步骤(f)定期使浏览器与预设的因特网站点之间建立连接;和(g)从预设的因特网站点接收用来定义全部或部分购物助理界面对象的附加信息到文件中。
27.如权利要求25所述的方法,其中,所述步骤(e)还包括执行程序循环来防止文件关闭。
28.如权利要求27所述的方法,还包括当浏览器不再处于活动状态时终止所述程序循环的步骤。
29.如权利要求25所述的方法,其中,所述步骤(b)包括使浏览器与预设的因特网站点之间自动建立连接。
30.如权利要求25所述的方法,其中,所述文件包含电脑代码,用于获取使因特网浏览器导航到的每个因特网站的因特网地址,确定使因特网浏览器导航到的一个网站是否是支持的商户网站,并且如果该网站是支持的商户网站,则使用钱包和支持的商户规则和映射文件来自动填写支持的商户网站的结账网页。
31.如权利要求25所述的方法,其中,所述文件包含电脑代码,用于在因特网浏览器中添加购物助理按钮和工具条。
32.如权利要求25所述的方法,其中,所述文件包含电脑代码,用于在使因特网浏览器导航到支持的商户网站时提供指示。
33.如权利要求25所述的方法,其中,所述文件包含电脑代码,用于通过比较使因特网浏览器导航到的每个因特网站的因特网地址与支持的商户数据文件,确定使因特网浏览器导航到的一个网站是否是支持的商户网站。
34.一种使因特网浏览器访问预设因特网站点的方法,所述方法包括以下步骤(a)在电脑上提供文件,包括对购物助理界面对象和用于因特网浏览器的指令的定义;和(b)在电脑用户启动因特网浏览器之后,作为对文件中指令的响应,自动使因特网浏览器建立与预设因特网站点之间的连接。
35.如权利要求34所述的方法,还包括从预设因特网站点接收用来定义全部或部分购物助理界面对象的信息到文件中的步骤。
36.如权利要求34所述的方法,其中,所述文件包含电脑代码,用于获取使因特网浏览器导航到的每个因特网站的因特网地址,并确定使因特网浏览器导航到的一个网站是否是支持的商户网站,并且如果该网站是支持的商户网站,则使用钱包信息与支持的商户规则和映射文件自动填写支持的商户网站的结账网页。
37.如权利要求34所述的方法,其中,所述文件包含电脑代码,用于在因特网浏览器中添加购物助理按钮和工具条。
38.如权利要求34所述的方法,其中,所述文件包含电脑代码,用于在使因特网浏览器导航到支持的商户网站时提供指示。
39.如权利要求34所述的方法,其中,所述文件包含电脑代码,用于通过比较使因特网浏览器导航到的每个因特网站的因特网地址与支持的商户数据文件,来确定使因特网浏览器导航到的一个网站是否是支持的商户网站。
40.一种可由因特网浏览器在电脑显示器上显示的因特网浏览器界面,包括浏览器启动时通过浏览器界面显示的ActiveX控件购物助理界面对象,它提供了与预设因特网站点之间的链接,而与电脑通过浏览器连接的因特网站点无关。
41.如权利要求40所述的因特网浏览器界面,其中,所述ActiveX控件购物助理界面对象使因特网浏览器建立与预设因特网站点之间的连接。
42.一种可由因特网浏览器在电脑显示器上显示的因特网浏览器界面,包括浏览器启动时通过浏览器界面显示的插件购物助理界面对象,它提供了与预设因特网站点之间的链接,而与电脑通过浏览器连接的因特网站点无关。
43.如权利要求42所述的因特网浏览器界面,其中,所述插件购物助理界面对象使因特网浏览器建立与预设因特网站点之间的连接。
44.一种控制可由因特网浏览器在电脑显示器上显示的因特网浏览器界面的方法,所述因特网浏览器使电脑和浏览器的用户能够访问并导航到因特网,并能够接收来自一个或多个因特网站点的一个或多个网页并将其显示出来,包括显示来自预设因特网站点的网页,所述因特网浏览器具有至少一个因特网浏览器工具条,其具有至少一个工具条按钮,为电脑和因特网浏览器的用户提供预设的功能,所述方法包括以下步骤(a)在预设因特网站点提供对用于控制所述因特网浏览器界面的程序的访问;和(b)使得可以通过预设因特网站点下载用来显示作为所述因特网浏览器一部分的用户工具条和购物助理界面对象的文件。
45.如权利要求44所述的方法,其中,所述文件包含ActiveX控件。
46.如权利要求44所述的方法,其中,所述文件包含插件。
47.如权利要求44所述的方法,其中,所述购物助理界面对象是工具条按钮。
48.如权利要求44所述的方法,其中,所述文件包含电脑代码,用于获取使因特网浏览器导航到的每个因特网站的因特网地址,确定使因特网浏览器导航到的一个网站是否是支持的商户网站,并且如果该网站是支持的商户网站,则使用钱包与支持的商户规则和映射文件来自动填写支持的商户网站的结账网页。
49.如权利要求44所述的方法,其中,所述文件包含电脑代码,用于在因特网浏览器中添加购物助理按钮和工具条。
50.如权利要求44所述的方法,其中,所述文件包含电脑代码,用于在使因特网浏览器导航到支持的商户网站时提供指示。
51.如权利要求44所述的方法,其中,所述文件包含电脑代码,用于通过比较使因特网浏览器导航到的每个因特网站的因特网地址与支持的商户数据文件,来确定使因特网浏览器导航到的一个网站是否是支持的商户网站。
52.一种用于控制可由因特网浏览器在电脑显示器上显示的因特网浏览器界面的系统,所述系统包括服务器,所述服务器包括电脑用户可通过因特网访问的用于控制所述因特网浏览器界面的程序;和可由所述服务器下载到电脑的文件,用于控制所述因特网浏览器界面,其中,当因特网浏览器启动时,所述可下载的文件可以使得在浏览器界面中添加用户工具条和购物助理界面对象,并作为浏览器界面的一部分显示在电脑显示器上,而与电脑通过因特网浏览器所连接到的因特网站点无关。
53.如权利要求52所述的系统,其中,所述购物助理界面对象包含ActiveX控件。
54.如权利要求52所述的系统,其中,所述购物助理界面对象包含插件。
55.如权利要求52所述的系统,其中,所述文件包含电脑代码,用于获取使因特网浏览器导航到的每个因特网站的因特网地址,确定使因特网浏览器导航到的一个网站是否是支持的商户网站,并且如果该网站是支持的商户网站,则使用钱包与支持的商户规则和映射文件来自动填写支持的商户网站的结账网页。
56.如权利要求52所述的系统,其中,所述文件包含电脑代码,用于在因特网浏览器中添加购物助理按钮和工具条。
57.如权利要求52所述的系统,其中,所述文件包含电脑代码,用于在使因特网浏览器导航到支持的商户网站时提供指示。
58.如权利要求52所述的系统,其中,所述文件包含电脑代码,用于通过比较使因特网浏览器导航到的每个因特网站的因特网地址与支持的商户数据文件,来确定使因特网浏览器导航到的一个网站是否是支持的商户网站。
全文摘要
一种修改因特网浏览器界面(30)的方法,提供购物助理功能,有助于在支持的商户因特网站上进行在线购物。根据本发明创建的钱包包括在一定预设字段名下、其中存储有各种用户数据的数据库。支持的商户数据文件标识了多个支持的商户并使修改后的浏览器界面能够确定购物者何时导航到支持的商户网站(26)上。对于每个支持的商户,创建规则和映射文件,其可结合钱包使用来将用户在钱包中提供的信息映射到商户结账网页的对应字段中。当用户导航到支持的商户网站并想从该商户购买商品和/或服务时,钱包自动地填写完成商户的结账网页,由此简化了在线购物,尤其简化了结账过程。
文档编号G06Q30/00GK1602491SQ02822069
公开日2005年3月30日 申请日期2002年10月28日 优先权日2001年11月1日
发明者托马斯·乔舒亚·沙夫龙, 陆奇, 阿希什·巴尔杜亚 申请人:雅虎公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1