用于代码转换和显示电子文档的方法、系统和设备的制作方法

文档序号:6594463阅读:199来源:国知局
专利名称:用于代码转换和显示电子文档的方法、系统和设备的制作方法
技术领域
本发明涉及对电子文档进行代码转换,以便促进这样的文档在设备的显示器上的显示。具体而言,本发明涉及用于标识文档中的元素块并在文档的经代码转换的版本中包括标识的块以及它们的位置的列表的方法。
背景技术
诸如网页之类的电子文档常常被设计用于在带有标准尺寸的显示器的常规台式计算机上显示。当这样的文档显示在其他设备上时,例如,手持式设备、移动电话、电视机或游戏控制台,显示器的大小和布局可能不会以对用户方便的方式呈现文档。在带有相对低分辨率的小型显示器上,可以如此显示文档,以至于只有文档的小部分可以在设备的视口内显示。为了查看文档的超出显示器范围的那些部分,用户必须水平地以及垂直地滚动。这些滚动操作对用户来说常常不方便,特别是因为这样的设备上的用户输入界面不是为文档的准确的滚动而设计的。解决此问题的一个典型的解决方案是调整文档的某些部分的大小或移动某些部分,诸如通过改变文档的布局,以及改变颜色、对比度、亮度和字体大小,来缩小图像大小, 减少栏的数量。这样的方法的缺点是文档不会如文档作者所希望的那样显示,文档的布局中所固有的信息可能会丢失。

发明内容
根据本发明,提供了一种用于在文档被显示在设备上之前在文档中包括标识的元素以及它们在文档中的位置的列表。根据本发明的一个方面,代码转换服务器可以接收原始文档,执行符合本发明的原理的方法,并将经过代码转换的文档转发到发出请求的设备供显示。根据本发明的第二方面,设备可以被配置成执行显示经过代码转换的文档的方法,根据列出的元素位置,选择并显示文档的某些部分。在所附权利要求书中定义了本发明的细节,而在下文中参考附图阐述了示例性实施例。


图1示出了计算设备的基本组件;图2示出了诸如web浏览器之类的用户代理的基本体系结构;图3示出了示例性网页;图4示出了如何组织图3的网页的布局;图5是示出了代码转换服务器的框图;图6是示出了对文档进行代码转换的示例性方法的流程图;图7是示出了被配置成显示根据本发明编码或经代码转换的文档的用户代理的框图8是示出了被配置成显示根据本发明编码或经代码转换的文档的方法的流程图。
具体实施例方式现在将参考附图进一步详细描述本发明。本发明可以许多不同的形式来实现,不应该被理解为仅限于此处所阐述的实施例。这些实施例只作为示例提供,以便为本领域技术人员提供对本发明的完全理解。具体而言,应该理解,尽管示例引用了特定标准和格式以便在因特网和万维网上创建、格式化、传输和显示内容,但是,本发明不应该解释为限于此处所提及的特定标准。图1示出了可以用作用于实现本发明的各方面的环境的一般化计算设备100。图形中所示出的各种元件可以在执行对文档的代码转换的服务器以及在显示经过代码转换的文档的设备上实现,但是,那些本领域技术人员将认识到,各种组件在不同类型的设备上大小、性能以及功能会有所不同。在图1中,设备100包括中央处理单元(CPU) 101、存储器102、通信端口或输入/ 输出端口(下文简称为“1/0”)103、视频接口 104,以及网络接口 105。这些单元通过系统总线106彼此进行通信。可包括ROM、RAM、闪存、硬盘驱动器或固定和可移动存储器的任何其他组合的存储器,存储系统的各软件组件,如基本输入/输出系统(BIOS) 141、操作系统142、包括应用程序和设备驱动程序的各种计算机程序143,各种数据144,及诸如宏指令和脚本145之类的其他可执行文件或指令。I/O端口 103可以连接到一个或多个本地设备110,如用户输入设备(例如,键盘、 鼠标或遥控器)、打印机、媒体播放器、外部存储器设备,以及诸如,例如,全球定位系统接收器(GPQ或电视机机顶盒之类的特殊用途设备。I/O端口 103可以是本地设备的诸如USB、 PS/2、RS-232、红外线(IR)、蓝牙、打印机端口,或任何其他标准化或专用通信接口之类的端口的任何组合。视频接口设备104连接到显示单元120,该显示单元120可以是诸如IXD显示器之类的外部监视器或集成的显示器。显示单元120可以具有触敏屏幕,在该情况下,显示单元可以兼作用户输入设备。显示单元的用户输入设备方面可以被视为通过通信端口 103进行通信的本地设备110中的一个。网络接口设备105为设备100提供连接到网络的能力,以便与远程设备130进行通信。在图1中只被示为连接网络接口 105与远程设备130的线路的通信网络,可以是,例如,局域网或因特网。远程设备原则上可以是与设备100具有类似的通信能力的任何计算设备,但是,通常可以是提供网络服务的服务器或某种其他单元。本领域技术人员将理解, 通信网络可以是任何可公开访问的网络,或网络的组合,包括因特网、诸如GSM之类的蜂窝式移动网络,公用电话网、有线电视网,或模拟或数字广播或卫星。可以理解,图1中所示出的设备100在大小或资源方面不仅限于任何特定配置或实施例。所示出的各种组件可以实现为设备100的一个或多个集成的单元或分布到多个单元。当然,也可以存在其他单元或能力。此外,设备100可以是,例如,诸如PC之类的通用计算机,个人数字助理(PDA)、手机或智能电话,或游戏控制台或电视机机顶盒或媒体中心。
本发明的各方面可以实现为可以作为应用程序安装在设备100上的构成用户代理或浏览器的某些部分的组件和/或功能。图2示出了可以存在于这样的用户代理中的若干个模块的示例。模块通常是软件模块,或可以由CPU 101执行的软件中的某种其他实现。用户代理200向用户呈现用户界面201,该用户界面201可以显示在图1所示出的显示单元120上。用户界面可包括地址字段202,用户可以使用输入设备来在此输入他或她需要用户代理200检索的文档或服务的URI。地址字段202也可以是显示的链接,可以由用户使用诸如鼠标、滚动设备之类的指示设备或用于选择显示出的项的某种其他装置来激活该显示的链接。或者,在已经由用户代理加载的文档或脚本的代码中指定URI。在任何情况下,URI都可以由表示与用户代理200(或其一部分)相关联的用户界面的输入部分的窗口和输入管理器203接收。然后,可以将URI转发到文档管理器204,该文档管理器204管理作为由URI所标识的文档的一部分接收到的数据。文档管理器204将URI转发到URI管理器205,该URI管理器205再次命令通信模块206请求访问所标识的资源。通信模块206可以是能够使用超文本传输协议(HTTP)或诸如HTTPS或FTP之类的某种其他协议,通过网络从诸如服务器之类的远程设备130访问和检索数据。通信模块也可以能够访问存储在本地存储器102中的数据。如果设备100外部的通信需要被加密,例如,如用于访问URI的协议所指定的,加密/解密模块207处理URI管理器205和通信模块206之间的通信。由通信单元206响应于请求而接收到的数据被转发到URI管理器205。然后,URI 管理器可以使用高速缓存管理器208将接收到的内容的副本存储在本地存储器102中,而高速缓存管理器208管理文档和图像高速缓存209。如果以后请求了同一个URI,则URI管理器205可以从高速缓存管理器208中请求它,除非被高速缓存的副本被删除,否则,高速缓存管理器208将从高速缓存209中检索数据,并将数据转发到URI管理器205。在此情况下,当第二次请求同一个URI时,不需要再次从远程设备130检索数据。URI管理器205将接收到的数据转发到解析器210,该解析器210能够作为HTML、 XML和CSS解析这样的内容。然后,取决于内容的类型和特征,内容可以由ECMAkript引擎211(这是一个用于处理文档对象模型(DOM)结构212的模块)和/或布局引擎213进行进一步的处理。对检索到的内容的这种处理由文档管理器204进行管理,文档管理器204也可以作为对接收到的内容的处理的结果,将另外的URI请求转发到URI管理器205。这些另外的 URI,可以,例如,指定应该嵌入在由原始URI所指定的文档内的图像或其他另外的文件。当已经处理完表示指定的文档的内容的数据时,它被从文档管理器204转发,以便由呈现引擎214呈现,并显示在用户界面201上。如此所描述的各模块可以由处理单元101在通过系统总线106接收到指令和数据时执行。通信模块206使用网络接口 105与远程设备130进行通信。当然,各模块的功能可以集成在少一些较大的模块上,或分布在或复制到多个模块上。进一步可以理解,刚刚所描述的用户代理200可以实现为应用程序143,而且,某些功能也可以是操作系统142或者甚至设备100的BIOS 141的一部分。响应于URI请求而接收到的内容可以是数据144、脚本145或这些数据的组合,如下面所进一步描述的。诸如网页之类的电子文档,通常是使用诸如HTML、XHTML或XML之类的标记语言创建的,通常给它们赋予了为标准计算机显示器设计的布局。然而,诸如浏览器之类的用户代理越来越多地安装在诸如PDA、蜂窝电话、电视机机顶盒和游戏控制台之类的其他类型的设备上。这样的设备具有带有不同大小、形状和分辨率的各种显示器。这些设备可能不能以有意义的方式呈现和显示网页。文档可以被缩小到变得不能读的程度,一次只能显示文档的小部分,或者文档的布局可以以文档的创建者从来没有计划的方式变化。现在参考图3,在图3A中示出了示例性网页300的整个布局。网页包括左缘301 和主要内容区域302。主要内容区域302包括以标题行303开始的文章,而左缘301包括导航菜单304,其中带有若干个菜单条目,这些条目可以是到同一个网站的其他部分的超链接。在主要内容区域302中,在标题行303的下面有两栏文本,在右栏内,插入了图像306。图:3B示出了图3A的网页的在浏览器窗口或用户代理窗口显示的一部分。用户代理可以类似于上文图2参考所描述的用户代理,而该窗口可以显示在类似于上文参考图1 所描述的设备的显示器上。窗口包括导航按钮311、其中可以输入所希望的文档的URL,以及垂直滚动条313。 浏览器窗口的其余部分被用来显示文档300的一部分。窗口的其余部分称为视口。值得注意的是,在图3B中所示出的示例中,视口足够宽,以显示网页300的全宽,同时只有文档的上部能被显示。为了查看文档的其余部分,提供了垂直滚动条313。通过此滚动条,可以相对于文档300向下移动视口。图3C再次示出了网页300的一部分,但是,这一次是显示在小型显示器上,可以是 PDA或手机的显示器。用户代理窗口可包括图:3B中所示出的浏览器窗口的一些功能,如导航按钮311和垂直滚动条313。另外,还提供了水平滚动条314。由于视口的尺寸小,只能显示文档的一部分。为了查看整个文档,用户必须水平地和垂直地滚动。在图IBB中所示出的情况下,可以阅读整个文档,没有太多麻烦。然而,出于一些原因,用户可能,例如,希望放大文档的特定元素,即,放大文档,以便在视口只显示一小部分。 这样的原因的一个示例可以是,用户代理窗口在其上面显示的显示器120具有低分辨率, 可能与用户位于远离显示器120某一距离相结合,诸如如果显示器120是电视机的屏幕的那种情况,难以适当地查看显示的内容。另一原因可能是,用户缩小了视野并希望放大文档的各部分。在图3C中所示出的情况下,应该了解到,在文档中的导航可能是困难的,如果文本的行比视口宽,阅读文本305将特别困难。用户可能希望放大和缩小文档,而将所希望的内容完全放在视口内,至少在一个维度内。现在参考图4,该图示出了如何就布局而言来组织文档300。那些本领域技术人员将认识到,这只是多个示例中的一个,可以以多种方式来实现相同布局,取决于,例如,文档 300的标记语言代码的结构。图4中所示出的示例是以级联样式表(CSS)(级别2,修订版 1,由万维网联合会(W3C)在http://WWW. w3.org/TR/CSS21/处发布)为基础,在此引用该文件作为参考。然而,本发明不限于此版本的CSS,或具体的CSS。下面给出的示例是简化的,可能没有包括全部可能性和功能或例外。当由诸如图2中所示出的用户代理之类的用户代理接收到标记语言文档时,通常如上文所描述的那样处理文档。布局引擎213可以,基于文档的DOM结构,生成基于DOM树中的元素的若干个框。根据CSS 2.1框模型的一般方法,被定义为块框(block box)的框为子代框建立包含块。(诸如内联框之类的某些其他类型的块不是块框)。另外,诸如各种表元素之类的未被定义为框的某些其他类型的元素,也建立包含块。可以相对于其包含块的边缘,计算给定框的维度和位置。在图4中,顶级框400是整个页面的包含块。左边缘301包含在一个子代框401中,而主要内容302包含在另一子代框402中。然后,可以基于其包含块401的边缘来计算菜单304的位置。标题行303可以包含在框403中,该框403具有框402作为其包含块。框402可以包含另外的框404,该另外的框404包含文档300的主要文本305。可以基于其包含的块(框40 的边缘来计算标题行303的位置。因为文本305分布为两个栏,框404可以包含两个子代框405和406。 这两个框都具有框404作为它们的包含块。最后,框406包含另外的框407,该另外的框407 具有框406作为其包含块,又充当图像306的包含块。还可存在图4中未示出的另外的框。通常,框405和406中所包含的文本的每一行都具有其自己的行框,并且如果文本包含超链接,则这些链接可以包含在内联框中。可以在上文引用的CSS规范中发现对各种类型的框的比较详细的讨论。最后,块408代表显示一部分文档的设备的视口的位置。在转让给同一个受让人的美国专利申请11/525,177中提出了可以利用对此文档结构的分析来选择和显示文档的所感兴趣的区域。这里引用了所述专利申请的内容作为参考。本发明的发明人认识到,小型设备可能缺乏有效地分析整个文档的计算能力,许多这样的设备在请求和接收文档时对它们可用的带宽很有限,以致于可能常常需要接收文档的压缩版本,或只代表文档的某些部分的数据。这可能使得对文档的结构的局部分析更加困难。根据本发明的一个方面,可以由代码转换服务器执行分析,可以作为经过代码转换的文档的一部分,包括代表分析的结果的数据。现在参考图5,该图示出了如何以安装在计算机上的软件模块来组织根据本发明的原理的代码转换服务器500,所述计算机被配置成作为代理服务器来操作,该代理服务器从设备接收文档请求,获取文档,根据本发明的原理转换它们,并将它们转发到发出请求的设备。第一模块501是可以被配置成从设备接收请求的通信模块。通信模块501可以通过TCP/IP接收HTTP (S)请求,但是,根据本发明的原理,通信设备501还可使用其他标准或协议及因特网之外的其他类型网络进行通信。作为示例,通信模块501可以被配置成通过诸如GSM、UMTS、CDMA之类的移动电话网络,或通过诸如Wi-Fi无线局域网(IEEE S02. 11) 或WiMAX(IEEE 802. 16)之类的无线网络,直接或间接地进行通信。通信模块501可以连接到认证和授权模块502,认证和授权模块502判断是否需要对发出请求的客户端进行认证,并判断该客户端是否被授权通过服务器500访问被请求的资源。认证和授权可以通过由本领域的技术人员已知的方法来处理。这样的方法的一个示例是用户名/密码组合。可以将接收到的请求和认证的结果记录在记录模块503中。无论请求是HTTP或HTTPS请求的形式,或当由通信模块501接收到时的任何其他格式,它都将以某种方式引用诸如文档或网页之类的资源,并且此标识通常是URI的形式, 或者,可以由通信模块501将它转换为URI。
文档管理器504可以与图2中所示出和描述的文档管理器204相对应。为了简化描述,假定文档管理器504还包括图2中所示出的另外的模块的功能,如HTML/XML/CSS解析器210、ECMAScript引擎211、DOM模块212和布局引擎213。由通信模块501接收到的 URI作为请求的一部分。然后,可以将URI转发到文档管理器504,该文档管理器504管理作为由URI所标识的文档的一部分接收到的数据,如同将URI从窗口和输入管理器203转发那样,如上文参考图2所讨论的。文档管理器504可以将URI转发到URI管理器505,该URI管理器505再次命令第二通信模块506请求访问所标识的资源。通信模块506可以是能够使用超文本传输协议 (HTTP)或诸如HTTPS或FTP之类的某种其他协议,通过网络从诸如服务器之类的远程设备 130访问和检索数据。通信模块也可以是能够访问存储在本地存储器102中的数据。如果由第一通信模块501和第二通信模块506所使用的通信标准和协议相同,则这两个模块可以只实现为处理往返于服务器500的全部通信的一个通信模块。响应于由第二通信模块506发送的请求,可以以一个或多个文件的形式接收数据。然后,可以将接收到的数据转发到URI管理器505。然后,URI管理器可以使用高速缓存管理器208将接收到的内容的副本存储在本地存储器中。如果以后请求了同一个URI,甚至可能从不同的设备,则URI管理器505可以从高速缓存管理器508请求它。这与在设备上安装的本地用户代理执行的高速缓存相对应,如参考图2所描述的,还对应于由代理服务器执行的方法,如那些本领域技术人员所知道的。然后,URI管理器505可以将接收到的数据转发到文档管理器504。然后,文档管理器可以以类似于参考图2所描述的方式的方式处理数据,只是在此情况下,不一定将文档呈现给显示器。相反,可以将文档呈现给虚拟存储器。根据本发明的原理,可以将文档呈现给一组绘制命令,例如,当被转发到显示器管理器或控制器时,每一个命令都在显示器上划一条线。根据本发明的某些实施例,这些命令可以是二进制格式,以便减少描述文档的呈现所需的数据量。根据本发明的一个方面,首先通过一组绘制命令来描述文档,该组绘制命令将全部图像绘制为灰色矩形,或作为不需要传输大量数据的某种其他图案。在将文档的此描述传输到设备之后,可用另外的绘制命令来描述图像,并可以指示显示控制器在灰色矩形上绘制图像。以此方式,在接收到所有图像数据之前,可以在设备的显示器上呈现大部分页面。在根据本发明的此方面的一个实施例中,矩形不被呈现为灰色,而是代表相应的图像的平均颜色的颜色。此外,还可以由文档变码器507分析文档,以便标识诸如文本、图像和超链接之类的元素的块或框,以及它们在文档的布局中的位置,如参考图4所描述的。通过分析,可以产生代表预定义类型的内容的矩形或内容块的列表。内容块的位置可以被标识为,例如,代表矩形(内容块)的两个在对角线方向相对的角部相对于参考点(例如,整个文档布局的左上角)的坐标。内容块的列表可以,对于每一个块,除其位置之外,还包括例如,该块所包含的元素的类型(文本、图像、超链接、表单元格等等)。如果该块包含超链接,则还可包括 URI,或该URI —些表示或对URI的引用。根据本发明的某些实施例,可以实现各个规则,以便判断哪些内容块应该包括在该列表中。这样的规则可以基于元素类型(例如,文本块、图像块、表,以及所有块(超链接块)),文档DOM树中的位置,大小等等。文档,无论它处于其原始形态,代码转换到绘制命令的序列、或以任何其他方式经代码转换,现在都与代表元数据的矩形的列表打包在一起。然后,可以将包括元数据的文档数据从文档管理器504转发到通信模块501。为了减少带宽的使用,通信模块501可以被配置成只传输文档数据的一部分,选定的部分可以基于从发出请求的设备接收到的输入, 包括描述显示器大小和/或分辨率的信息,并且用户输入代表在文档的各部分的导航(滚动)°图6示出了当代码转换服务器从设备接收请求时该代码转换服务器如何操作的流程图。在第一步骤601中,由服务器从设备接收请求。请求标识诸如,例如,网页之类的资源。资源可以通过其URI来标识。在下一步骤602中,判断发出请求的设备是否被授权与代码转换服务器进行通信。此过程可以涉及与设备的另外的通信,例如,以便获得用户名和密码,或数字证书。如果没有获得授权,则在步骤603中,由服务器拒绝请求,服务器返回以等待来自设备的下一请求。如果在步骤602中由授权模块验证了授权,则处理该请求,在下一步骤604中,指示第二通信模块506发送HTTP或HTTPS请求,以从其中存储了资源的服务器(也被称为 “始发服务器”)获取由URI所标识的资源。在步骤605中,由第二通信模块506接收所请求的资源。接收到的资源可包括必须通过单独的HTTP请求获取的对另外的元素的引用,在这样的情况下,另外的请求是由第二通信模块506所发送的。在下一步骤606中,如上文所描述的,由文档管理器504和文档变码器507执行虚拟呈现和代码转换。在步骤607中,经过代码转换的文档可以组织为一组绘制命令,描述内容在页面上的位置的矩形列表,包括它们在页面上的位置的超链接以及它们引用的URI的列表。如上文所描述的,在绘制命令的流的初期,图像可以被描述为带有简单颜色或图案的矩形,例如,对于每一个图像的平均颜色,而最后传输描述实际图像的绘制命令。在步骤608中,将经过代码转换的文档传输到发出请求的设备。接收经过转换的数据的设备可包括能够接收数据并在设备的显示器上呈现文档的用户代理。用户代理可以被配置为只访问这种类型的数据,或者,它可以是一般浏览器类型的用户代理,诸如图2中所示出的那种,带有处理根据本发明的原理经代码转换的文档的必要的另外的功能。参考图7,该图示出了被配置成处理经过代码转换的文档的用户代理700,其中, 没有在代码转换服务器中实现的普通HTML/CSS处理功能。设备可包括用户界面701和地址输入字段702。窗口管理器/输入管理器703可以从地址输入字段702或从诸如指针或光标之类的任何用户输入设备接收用户输入。输入管理器703通常能够注册指针在文档中的位置(包括在内容矩形内的位置和到内容矩形的距离,如下面进一步描述的),以及与文档中的超链接或其他输入元件的交互。文档管理器704与参考图2所描述的对应的文档管理器的不同之处在于,一般 HTML/CSS功能(以及诸如HTML/XML/CSS解析器、DOM模块和布局引擎之类的相关联的模块)不必存在(但是,如所提及的,在实现本发明的用户代理中存在此功能是符合本发明的原理的)。文档管理器被配置成接收用户输入,在这样的输入代表对通过其URI标识的文档的请求的情况下,将这样的输入转发到URI管理器705。URI管理器705可以将请求转发到通信模块706,并在与参考图2所描述的过程相对应的过程中从通信模块706接收任何接收到的响应。用户代理700还可使用存储在本地存储器中的高速缓存管理器708和文档缓存 709来实现高速缓存。文档管理器704还可以进一步被配置成从URI管理器接收文档内容,并将接收到的绘制命令发送到显示控制器715。显示控制器715通过在用户代理700的用户界面内在设备的显示器上绘制文档的相关部分来作出响应。文档通常大于用户界面701的视口。文档管理器704可以被配置成接收用户输入,该用户输入请求以多个缩放级别显示,以便以给用户提供大部分或整个文档的概要的模式,以及以允许用户以方便的分辨率阅读文本和查看图像的模式来显示文档。根据本发明,一个或多个缩放级别可以基于作为内容矩形接收到的数据所包含的信息,支持滚动。如果文档管理器接收到代表在特定方向滚动的请求的用户输入,文档管理器可以指示显示控制器715将绘制命令发送到屏幕,以便内容在所请求的方向滚动,直到内容矩形的边缘沿着用户界面701的视口的边缘定位。根据本发明的原理,代表矩形内的“点击”,但不与超链接或诸如输入框之类的任何其他类型的特殊元素相关联的用户输入,可以被解释为滚动的请求,以便所标识的矩形被定位在用户界面701的视口的左上角,或者,在一个方向滚动,以便将矩形的一个边缘与视口的对应的边缘对齐。如上文所提及的,输入管理器703能够跟踪诸如鼠标指针之类的指示设备的位置。根据本发明的某些实施例,可以将此位置与作为文档的描述的一部分接收到的矩形的列表进行比较,矩形可以重叠或嵌入在其他矩形内,例如,可以将代表图像的矩形完全定位在代表图像所关联的文章的文本块的矩形内。如此,指针或光标可以同时在多个框内。这意味着,如果输入管理器703接收到定义位于多个矩形内的位置的用户输入,必须制定确定应该将哪一个矩形与用户界面703的视口对齐的规则。根据本发明的第一实施例,选择最里边的矩形-本身不包含任何矩形的矩形。作为示例,假设由设备显示图4中所示出的文档,如果用户输入定义了框405内的位置,它也一定在框404、框402和框400内。然而, 框405是最里边的矩形,根据本发明的此实施例,视口 408和文档可以相对于彼此移动,以便栏405和对应的文本块305与视口 408对齐。类似地,如果指针在框407内,则它不是文本305的右栏,而是选择的图像306。可另选地,或另外地,用于当一个位置在一个以上的矩形内时选择一个矩形的规则也是可能的。一个替代方案是基于诸如文本、图像表等等之类的与矩形相关联的元素的类型,提供优先级。另一替代方案是基于那里实现的规则,在代码转换服务器中指定优先级,并在设备上的用户代理中选择带有最高优先级的矩形。图8是概述了如何作为安装在设备上的用户代理的一部分来实现根据本发明的方法的一个示例性实施例的流程图。在第一步骤801中,用户代理700接收文档。文档可以作为对来自用户代理的以前发出的请求的响应而接收,例如,因为用户点击了超链接,在地址输入字段702中输入URI,或用户从收藏夹(书签)列表中作出选择。在下一步骤802中,用户代理根据从代码转换服务器接收到的绘制命令,绘制置于用户界面701的视口的页面,或页面的至少一部分。然后,用户代理等待可以在步骤803中接收到的用户输入。根据此特定示例,用户代理在下一步骤804中判断用户输入是否定义了用户希望滚动的方向。如果是这种情况, 则在从代码转换服务器接收到的矩形的列表中执行805搜索,直到标识了在滚动输入方向的第一矩形。然后,在步骤813中,将视口与搜索中标识的矩形对齐。然后,方法可以返回到步骤803,并等待另外的用户输入。如果输入没有标识方向,则在步骤806中用户代理判断输入是否标识文档中的位置。如果判断输入确实代表一个位置,则在步骤807中判断该位置是否与一个超链接相关联。如果是这种情况,则过程移到步骤808,在该步骤中,将对与该超链接相关联的文档的请求传输到代码转换服务器,然后,过程返回到步骤801。如果输入代表一个不与一个超链接相关联的位置,则过程移到步骤809,在该步骤中,执行搜索,以便标识包含已标识的位置的矩形。如上文所描述的,可以实现各种规则,以便判断确定在该位置在多个重叠的或嵌套的矩形内的情况下要选择哪一个矩形。在选择了适当的矩形之后,在步骤813中,将视口与已标识的矩形对齐。同样,如上文所讨论的,可以实现如何对齐矩形和视口的各种规则。在步骤813之后,方法可以返回到步骤803,并等待另外的用户输入。如果在步骤806中判断输入没有标识位置(也没有标识已经在步骤804中确定的方向),则在步骤810中判断输入是否代表改变缩放级别的请求。如果是这种情况,则在步骤811中执行矩形列表中的搜索,以便标识在改变缩放级别之后要与视口对齐的矩形。应该理解,在某些实施例中,改变缩放级别的请求可包括要放大(或缩小),在这样的情况下, 这必须在步骤806中确定。基于在步骤811中进行的判断,执行缩放操作,例如,通过改变文档的已呈现的部分的分辨率,并根据适当的规则将视口与在步骤813中标识的矩形对齐。然后,方法可以返回到步骤803,并等待另外的用户输入。如果在步骤810中判断请求不是缩放级别更改请求,则用户代理功能的某个其他部分占优势,并在步骤812中执行用户请求的任何动作,如将文本写入到输入字段中,显示菜单,改变屏幕的朝向等等。然后,过程可以返回到步骤803,并等待另外的用户输入。必须理解,参考图8的讨论只是一个示例,本发明可以利用其他测试来实现,以确定用户输入的特征或不同的步骤序列。根据本发明的一个方面,对应该与视口的边缘或角部对齐的矩形的边缘或角部的选择不会导致要显示的文档的所产生的部分的立即重绘。这将导致从文档的一个部分到另一部分不连续的跳跃,这会使用户产生混淆。作为替代,可以通过计算沿着开始和结束之间的路径的中间部分来创建滚动式移动,即从当接收到用户输入时显示的部分到显示选择的新部分的移动。这将给用户提供他或她如何在文档中导航的明确指示,将使返回到文档的其他部分更加容易。将对矩形的选择与缩放级别变化组合起来也符合本发明的原理。在此情况下,如果用户选定放大或缩小,可以基于在缩放操作之后其与视口的边缘的接近度,来选定矩形, 可以以与上文参考滚动或点击所描述的方式同样的方式,调整视口的位置以与所选矩形对齐。同样,缩放操作还可能涉及类似于中间滚动位置的中间缩放级别,以便帮助提供关于他或她如何导航文档的用户信息。缩放操作还可通过也标识文档中的位置的用户输入来启动。如果此位置在列出的矩形内,在缩放级别改变之后,可以选择此矩形作为要与视口对齐的矩形。用户代理还可被配置成仅仅因为指针在一个元素上盘旋而执行某些动作。根据本发明的原理的一个示例是,用边界或不同的背景颜色来表示矩形,或者,如果指示设备位于矩形内并且矩形与超链接相关联,用使矩形离开页面的其余部分的某种其他方法。在没有指针类型的输入设备的情况下,对矩形的选择可能更加复杂,但是,可以根据本发明实现若干种方案,诸如从一个矩形移到另一个矩形的键盘或游戏杆输入。在某些实施例中,可以将元素定义为跨越多个矩形,或换言之,可以使多个矩形相关联,以便如果选择了一个,则选择全部。将结果视为具有与矩形不同的形状的区域,但是, 可以以同样的方式实现用于将矩形与视口对齐的规则。这样的矩形组合可以主要用于指出,超链接横跨没有均勻右边距的多行文本,或者多个元素(例如,图像和文本链接)引用同一个URI。所讨论的各个示例和各实施例只是示例性的,不应该被解释为对在所附权利要求书中所定义的本发明的范围的限制。
权利要求
1.一种用于文档代码转换的方法,包括接收包括结构化元素列表的标记语言文档;基于所述文档的结构,生成代表所述文档的布局的虚拟呈现;从所述虚拟呈现标识一个或多个元素块,每个元素块包含至少一个所述元素;以及生成代表所述标记语言文档的数据,并且所述数据包括所述元素块的第一列表以及它们在所述布局中的位置。
2.如权利要求1所述的方法,还包括将代表所述标记语言文档的所述数据(包括标识的块以及它们的位置的所述列表)传输到设备,所述设备包括能够根据所述布局向所述设备的屏幕呈现所述文档的浏览器。
3.如权利要求1所述的方法,其中,所述接收步骤包括发送HTTP或HTTPS请求和接收 HTTP 或 HTTPS 响应。
4.如权利要求1所述的方法,其中,所述生成所述文档的虚拟布局包括向设备的显示控制器生成指令,所述指令允许所述显示控制器在所述显示器上绘制所述布局的表示。
5.如权利要求4所述的方法,其中,代表所述标记语言文档的所述数据包括至少一个所述指令的子集。
6.如权利要求1所述的方法,其中,所述元素块是文本块。
7.如权利要求1所述的方法,其中,所述块是矩形,并且所述位置是由至少两对坐标定义的。
8.如权利要求1所述的方法,其中,所述接收到的标记语言文档包括对其他文档的一个或多个引用,所述方法还包括从所述虚拟呈现标识一个或多个引用块,每个引用块都包含对另一文档的引用;以及所述数据包括所述标识的引用块以及它们在所述布局中的位置的第二列表。
9.如权利要求8所述的方法,其中,所述引用是超链接。
10.如权利要求1所述的方法,其中,所述标记语言是HTML、XHTML或XML。
11.一种用于在设备上显示文档的方法,包括接收代表带有结构化元素列表的标记语言文档的数据,所述数据包括一个或多个元素块以及它们在所述标记语言文档的布局中的位置的第一列表,每个这样的元素块都包含至少一个所述元素;在所述文档内选择一个位置或方向;分析所述文档的布局,以便基于所述位置或方向来选择至少一个所述元素块;以及在所述设备的显示器上呈现所述标记语言文档的至少一部分,如此选择所述部分,以便给所述标识的元素块提供所述显示器上的预定义的位置。
12.如权利要求11所述的方法,其中,代表标记语言文档的所述数据包括允许所述设备的显示控制器在所述显示器上绘制所述布局的表示的指令,而所述呈现包括向所述显示控制器发送与所述部分相关联的所述指令的至少一个子集,
13.如权利要求11所述的方法,其中,所述元素块是文本块。
14.如权利要求11所述的方法,其中,所述块是矩形,并且所述位置是由至少两对坐标定义的。
15.如权利要求11所述的方法,其中,所述接收到的数据还包括一个或多个引用块以及它们在所述标记语言文档的所述布局中的位置的第二列表,每个这样的引用块都包含至少一个对另一文档的引用。
16.如权利要求15所述的方法,其中,所述引用是超链接或超链接的表示。
17.如权利要求11所述的方法,其中,所述标记语言是HTML、XHTML或XML。
18.如权利要求11所述的方法,其中,所述位置或所述方向是基于从所述设备的用户界面接收到的用户输入来选择的。
19.一种被配置成执行如权利要求1-10中的一个权利要求所述的方法的服务器。
20.一种被配置成执行如权利要求11-18中的一个权利要求所述的方法的设备。
21.在计算机可读介质上体现的,并包括允许服务器执行如权利要求1-10中的一个权利要求所述的方法的指令的计算机程序产品。
22.在计算机可读介质上体现的,并包括允许设备执行如权利要求11-18中的一个权利要求所述的方法的指令的计算机程序产品。
全文摘要
由一种方法转换包括结构化元素列表的接收到的标记语言文档,该方法包括分析文档的结构,生成文档的布局的虚拟呈现,并标识一个或多个矩形,每个矩形都包含来自虚拟呈现的至少一个元素。生成代表标记语言文档的数据,包括矩形以及它们在布局中的位置的列表。如此经过代码转换的文档可以显示在接收所生成的数据的设备上。当选择文档内的一个位置或方向时,这样的设备可以分析文档的布局,以基于该位置或方向,选择至少一个矩形。然后,设备可以显示选定的文档的至少一部分,以便给所标识的矩形提供显示器上的预定义的位置。
文档编号G06F3/048GK102177515SQ200980131611
公开日2011年9月7日 申请日期2009年6月19日 优先权日2008年6月19日
发明者J·舒昂, P·海德伯 申请人:Opera软件股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1