专利名称::响应父窗口中的事件关闭应用程序窗口的制作方法
技术领域:
:本发明涉及因特网技术、以及当利用使用户能浏览秘密或机密信息的应用程序时对用户的隐私的保护的领域。更具体地,本发明涉及一种响应于与其父窗口关联的事件而实现应用程序窗口关闭的方法。
背景技术:
:消费者使用万维网提供的服务来进行秘密事务例如个人储蓄、股票交易、在线购买货物或开启(launch)来自门户环境内的其它服务。用户能通过与遍布全世界的服务器通信的网络来访问这些服务以获得信息。这些信息存储在服务器上,并通过将文件或数据分组从网络服务器资源发送到请求客户机应用程序,而从服务器传递到用户的应用程序。当执行这些在线事务时,消费者担忧其信息的私密性和安全性。具体说,在同一地点由多个不同用户对共享计算机的使用增加了这些担忧,因为秘密信息显示在其它用户的打开应用程序窗口中而被浏览。当多个用户共享同一台计算机时,用户可能没有正确退出系统或关闭其应用程序,并使得机密、秘密或个人信息显示在后来的用户打开的应用程序窗口中而被浏览。该打开的应用程序窗口中包含的信息可被另一用户使用以获得对他人的银行帐户、股票交易帐户或信用卡详细资料的未授权访问。这是网络应用程序在线访问秘密信息的具体问题。可主要由显式会话管理减轻该安全性担忧。定义网络应用程序与网络服务器的交互方式的超文本传输协议——HTTP执行会话管理。HTTP是客户机向包含所需资源的URL的服务器发送请求消息的“请求-应答”协议。服务器查找路径名,并且如果存在路径名,则在应答中将文件的内容向回发送到客户机。HTTP允许内容协商和认证。认证涉及键入密码的用户;在第一次尝试访问密码保护区域时,服务器应答包括适用于该资源的口令(challenge),例如数字签名。当客户机接收到该口令时,其提示用户键入名称和密码,并提交与随后的请求关联的凭证。然而,在服务器超负载和在网络上发送太多消息时,建立和关闭对每一请求-应答交换的连接的需求都很昂贵。使用持续连接来保持客户机和服务器之间的一系列请求应答交换的打开。可由客户机或服务器在任何时间通过发送标识符到其它参与者而关闭持续连接。服务器可配置为当其已空闲一段时间时关闭持续连接。如果网络上的应用程序已空闲一段时间,则该连接将超时,而该用户将需要在该应用程序中重新键入其认证详细资料。所以会话管理可用于使未认证用户停止对用户可能登录的各种不同应用程序获得访问,但是会话管理不提供窗口管理,所以未认证用户将能浏览在打开的应用程序窗口中显示的任何秘密信息。在应用程序窗口中没有发生明确退出系统的情况下,存在当设计关于窗口管理的用户接口时可以考虑的多个设计暗示。其广泛落入以下范畴,不再开启任何应用程序窗口,仅在给定时间在展示模式特性(modalbehavior)的应用程序窗口中开启单一应用程序窗口,或通过利用应用程序的文件-退出路径或提供有例如“X”图标或任务管理器的功能的操作系统来关闭应用程序的主页窗口。在应用程序中提供窗口管理的一种方法是使用解释客户机侧编程语言来提供需要的功能。利用例如JavaScript的解释客户机侧编程语言,窗口管理限于创建定义了高度、宽度、颜色和字体属性的新应用程序窗口。诸如JavaScript的客户机侧编程语言使用公知的“模式窗口”来获得有关是否执行指定操作的用户反馈。典型模式窗口包括一个或多个按钮,是、否、取消或确定,以及提示用户的问题,例如“你想关闭该应用程序吗?”。模式窗口将不会离开,直至用户点击是、否、取消或确定按钮为止。由客户机侧代码提供的模式应用程序窗口有其局限,例如当使用JavaScript中的showModalDialog()函数时。该showModalDialog()函数创建显示给定URL的html页面的单独弹出式应用程序窗口。该应用程序窗口允许用户在返回父应用程序窗口之前,处理该应用程序窗口的数据。该showModalDialog()函数是特定的InternetExplorer浏览器,并且不提供对Netscape浏览器或W3C文档目标模块的支持。showModalDialog()函数创建完全的单机应用程序窗口,其与开启的应用程序窗口不具有可描述(scriptable)关系。在Macintosh的操作系统平台上,不可能设置宽度、高度和颜色属性。父窗口中的onFocus()函数使得能选择父应用程序窗口,并捕获由onFocus()函数产生的事件。该onFocus()函数执行检查以判定是否存在开启的应用程序窗口。onFocus事件处理程序在出现onFocus()产生的事件时,执行指定的JavaScript代码或函数。当用户将焦点给予窗口、帧或形成元件时,出现onFocus事件。onFocus()函数在InternetExplore浏览器和Netscape4.xx浏览器、Macintosh和LINUX平台中工作。该函数的缺点在于不能在MicrosoftWindows操作系统中最小化模式窗口。该函数在Netscape6浏览器中是致命的。当选中父应用程序窗口上的关闭按钮,而模式应用程序窗口打开时,父窗口关闭,而模式应用程序窗口保持打开。在子应用程序窗口中反复调用self.focus()函数允许在将文档载入该应用程序窗口时,启动定时器。该定时器在开启的窗口中快速和反复调用self.focus()函数。实现self.focus()函数的缺点在于其对于所有其它应用程序是模式的,并且该函数不能访问其它开启的应用窗口,因为在应用程序窗口和模式窗口之间不存在可描述关系。self.focus()函数也可通过操作系统函数调用而关闭开启的应用程序窗口;由此使开启的可能潜在地包括无效会话中的事务应用程序的窗口保持打开。父窗口中的onFocus()或onClick()函数调用onOpenedWindow()函数。对父应用程序窗口的聚焦或点击调用对开启的应用程序窗口的存在性的检查。如果检查返回真,则由windowname.focus()函数显示开启的应用程序窗口。windowname.focus()函数的缺点在于其在InternetExplorer4浏览器中不产生一致的结果。当利用解释客户机侧语言创建应用程序时,兼容性问题是主要考虑因素。不同应用程序支持HTML的不同级别,而应用程序可支持的JavaScript功能取决于该应用程序中的解释程序。关闭打开的应用程序窗口的另一个方法是利用系统提供的功能,例如应用程序任务栏上的“X”图标、任务管理器或利用菜单栏上的文件/退出。尽管这样关闭了打开的应用程序窗口,但是其不提供从原始应用程序窗口内开启的任何网络或非网络应用程序窗口的关闭动作的自动化,并依赖于用户执行该动作。
发明内容根据本发明,现在提供一种响应于与其父应用程序窗口关联的事件而实现应用程序窗口关闭的方法,该方法包括以下步骤轮询与该应用程序窗口之父关联的指示符,并在不存在所述指示符时,访问引起该应用程序窗口关闭的系统提供函数。本发明响应于与该应用程序窗口之父关联的事件,而提供子应用程序窗口的自动关闭。本发明在父应用程序窗口不再存在时,关闭该子应用程序窗口。在与单独开启的应用程序窗口关联的应用程序窗口的控制下,每个开启的应用程序窗口承担父和子的角色。通过将窗口控制与单独开启的应用程序窗口关联,开启的应用程序能检测从中将其开启的应用程序存在与否。最好是,该方法提供对该应用程序窗口之父的指示符的轮询,以确认所述指示符是否存在,从而判定是否不要关闭该应用程序窗口。本发明提供在不关闭该应用程序窗口或用户仍然需要的随后开启的应用程序窗口的情况下,对应用程序窗口内的数据的刷新或重载。最好是,该方法提供事件,所述事件是向该应用程序的环境外部的资源导航。如果资源导航到该应用程序环境外部,则该应用程序窗口将关闭。最好是,该方法提供对应用程序窗口之父的所述指示符的状态的监视。最好是,该方法提供应用程序窗口在网络环境中操作。根据本发明的第二方面,提供了一种计算机程序产品,其包括在计算机可读存储介质上存储的计算机程序代码,当在计算机上执行时,其中包括的程序代码响应于在应用程序窗口之父中发生的事件,而实现该应用程序窗口的关闭。根据本发明的第三方面,提供了一种用于响应于与其父应用程序窗口关联的事件而实现应用程序窗口的关闭的系统,该系统包括用于轮询与该应用程序窗口之父关联的指示符、并在不存在所述指示符时访问系统提供函数、由此引起该应用程序窗口的关闭的装置。最好是,该系统提供用于轮询该应用程序窗口之父的所述指示符以确认所述指示符是否存在、从而判定是否不要关闭该应用程序窗口的装置。最好是,该系统提供用于检测事件发生的装置,其中该事件是向该应用程序的环境外部的资源导航。最好是,该系统提供用于监视该应用程序窗口之父的所述指示符的状态的装置。最好是,该系统提供在不破坏应用程序窗口中的数据的情况下刷新该应用程序窗口之父的装置。最好是,该系统提供用于关闭应用程序窗口之父而不关闭需要的应用程序窗口的装置。当在网络环境中工作时,本发明考虑到网络页面传递等待的固有问题。当应用程序窗口在其窗口内重载或刷新数据时,本发明包括用于轮询指示符的存在性以判定指示符存在的装置。如果其不存在,则该系统在检查该指示符的存在性之前暂停m秒。这将允许在该应用程序窗口内刷新数据,而不关闭任何从属的应用程序窗口。这实现了另一个优点,即不破坏正被刷新的应用程序窗口的数据结构。与传统桌面系统不同,在用户会话中始终存在标记,并且数据不丢失。所以本发明不需要在任何给定时间保持打开的应用程序窗口和使用中的事件处理程序的列表。本发明还提供一个优点在于所述方法、计算机程序产品和系统跨各种不同应用程序操作,并不是特定的应用程序。现在参考附图仅通过例子来描述本发明,其中图1图示了现有技术中建立的网络或非网络环境中访问的门户环境;图2图示了现有技术中建立的门户环境中的多个应用程序;图3示出了用于图示本发明的应用程序窗口关闭方法的流程图;图4图示了本发明描述的多个应用程序窗口之间的关系。具体实施例方式参考图1,由网络应用程序2通过网络3访问的门户环境1包括到例如储蓄5、保险6、投资7、贷款8、养老金10和存款11的其它服务4的多个超文本链接。点击服务的超文本链接可访问服务4。该应用程序通过网络3发送请求消息13到包含所需的资源的URL12的网络服务器15。网络服务器15查找请求的资源12的路径名,并且网络服务器15通过网络3将应答消息14中的文件内容向回发送到应用程序2。该请求的资源12装入到门户环境1中的应用程序窗口。多个服务可被访问并装入多个开启的应用程序窗口,同时在初始应用程序窗口中保持对门户主页的访问。参考图2,通过从门户主页21的因特网储蓄部分中选择“注册”超文本链接20而访问因特网储蓄。新应用程序窗口22被开启并与该门户主页21一起显示。要求将秘密信息输入到应用程序的表格域25以向该应用程序验明用户。一旦登录成功完成,则开启第二个应用程序窗口23,显示属于管理帐户窗口的选项列表,作为对超文本链接26的选择。为了管理活期帐户,选择活期帐户26超文本链接,并开启第三个应用程序窗口24。其它选项显示在新开启的应用程序窗口中。在图2的例子中,仅通过例子,在计算机屏幕上打开全部四个嵌套的应用程序窗口。每一应用程序窗口依赖于从中将其开启的应用程序窗口。本发明可等同地应用到网络环境和非网络环境,其中所需的信息包含在位于网络上的服务器上或存储在用户的计算机磁盘存储系统上并离线访问。现在参考图3,门户主页应用程序被开启31,在门户环境内或外显示对其它服务的超文本链接。在开启的门户主页窗口中例示了称为“KeepOpen”的变量32。通过从门户主页1中选择超文本链接而开启33从属的应用程序窗口。开启的应用程序窗口中的html页面中的<body>标记包括onLoad()函数。onLoad()函数调用初始函数。初始函数执行检查以确认当前装载到该应用程序的父窗口中的数据是否包括名为例如“KeepOpen”的变量34。如果该初始函数返回值“假”35,则该初始函数对变量是否存在的检查停止m秒36。这允许由用户或另一应用程序刷新该父应用程序。在m秒之后,该初始函数恢复其对“KeepOpen”变量的检查37。如果该初始函数发现“KeepOpen”变量存在,则该初始函数返回真值38。该初始函数对变量的存在性的检查停止n秒39。在n秒之后,该初始函数恢复其对“KeepOpen”变量的检查。该初始函数继续该处理直至该初始函数返回值“假”35。该初始函数对“KeepOpen”变量的检查暂停m秒36,以允许刷新该父应用程序。在m秒之后,该初始函数恢复其对“KeepOpen”变量的检查。如果该“KeepOpen”变量不存在,则返回值“假”41,并且关闭子窗口42。本发明考虑当应用程序在其窗口内重载或刷新数据时,网络页面传递等待的固有问题。本发明提供了一种轮询指示符的存在性以判定该指示符存在的方法。如果其不存在,则该方法在检查该变量的存在性之前暂停m秒。该处理允许刷新应用程序窗口内的数据,而不关闭任何从属的应用程序窗口。这获得了另一个优点,即不破坏正被刷新的应用程序窗口的数据结构,与传统桌面系统不同,在用户会话中始终存在标记。所以本发明不需要在任何给定时间保持打开的应用程序窗口和使用中的事件处理程序的列表。现在参考本发明的图4,可从门户环境内开启多个应用程序窗口。每一应用程序窗口依赖于从中将其开启的应用程序。当通过向门户环境外的资源导航或点击关闭按钮而关闭该金融应用程序窗口51时,将关闭个人银行帐户应用程序窗口52和活期帐户应用程序窗口53。活期帐户应用程序窗口53依赖于个人银行帐户应用程序窗口52。个人银行帐户应用程序窗口52依赖于金融应用程序窗口51。每一窗口依赖于从中将其开启的窗口,作为从属的窗口中运行的逻辑。每一开启的应用程序窗口承担父和子的角色,但是仅在从父应用程序窗口内开启另一个应用程序窗口的情况下,才因此创建子应用程序窗口。当关闭活期帐户应用程序窗口43时,仅关闭活期帐户应用程序窗口53,如同在该例中不存在从属的窗口一样。当关闭门户主页窗口50时,将关闭金融应用程序窗口51、个人银行帐户应用程序窗口52和活期帐户应用程序窗口53。权利要求1.一种响应于与其父应用程序窗口关联的事件而实现应用程序窗口关闭的方法,该方法包括以下步骤轮询与该应用程序窗口之父关联的指示符,并在不存在所述指示符时,访问引起该应用程序窗口关闭的系统提供函数。2.根据权利要求1的方法,还包括以下步骤轮询与该应用程序窗口之父关联的所述指示符,以确认所述指示符的存在性,从而判定是否不要关闭该应用程序窗口。3.根据权利要求2的方法,其特征在于,轮询所述指示符还包括以下步骤监视与该应用程序窗口之父关联的所述指示符的状态。4.根据权利要求3的方法,其特征在于,所述监视该应用程序窗口之父的所述指示符的状态提供了在不破坏应用程序窗口中的数据的情况下对该应用程序窗口之父的刷新。5.根据权利要求1的方法,其特征在于,所述事件是向该应用程序的环境外部的资源导航。6.根据权利要求1的方法,其特征在于,所述应用程序窗口在网络环境中操作。7.根据权利要求6的方法,其特征在于,在网络环境中开启一个或多个应用程序窗口。8.一种计算机程序产品,包括在计算机可读存储介质上存储的计算机程序代码,当其在计算机上执行时,其中包括的程序代码如权利要求1所述响应于与其父窗口关联的事件,而实现应用程序窗口的关闭。9.一种用于响应于与其父窗口关联的事件而实现应用程序窗口的关闭的系统,该系统包括用于轮询与该应用程序窗口之父关联的指示符、并在不存在所述指示符时访问引起该应用程序窗口关闭的系统提供函数的装置。10.根据权利要求9的系统,其特征在于,该系统还包括用于轮询与该应用程序窗口之父关联的所述指示符以确认所述指示符是否存在、从而判定是否不要关闭该应用程序窗口的装置。11.根据权利要求9的系统,其特征在于,所述事件是向该应用程序的环境外部的资源导航。12.根据权利要求11的系统,其特征在于,轮询所述指示符还包括用于监视该应用程序窗口之父的所述指示符的状态的装置。13.根据权利要求12的系统,其特征在于,所述用于监视与该应用程序窗口之父关联的所述指示符的状态的装置允许在不破坏该应用程序窗口中的数据的情况下刷新该应用程序窗口之父。14.根据权利要求12的系统,其特征在于,所述用于监视要关闭的应用程序窗口之父的所述指示符的状态的装置提供用于关闭父应用程序窗口而不关闭需要的应用程序窗口的装置。15.根据权利要求9的系统,其特征在于,所述应用程序窗口在网络环境中操作。16.根据权利要求15的系统,其特征在于,在网络环境中开启一个或多个应用程序窗口。全文摘要本发明涉及一种响应于与其父窗口关联的事件而实现应用程序窗口关闭的方法。该方法包括轮询与该父应用程序窗口关联的指示符,并在不存在所述指示符时,访问引起该应用程序窗口关闭的系统提供函数。文档编号G06F9/44GK1633639SQ03803951公开日2005年6月29日申请日期2003年2月6日优先权日2002年2月15日发明者迈克尔·C·亚当斯,乔纳森·菲利普斯,克里斯托弗·J·M·怀利申请人:国际商业机器公司