页面显示的排版方法及装置的制作方法

文档序号:6374921阅读:370来源:国知局
专利名称:页面显示的排版方法及装置的制作方法
技术领域
本发明涉及通信领域,具体而言,涉及一种页面显示的排版方法及装置。
背景技术
目前,相关技术中的浏览器大都通过集成一套网络应用(WebApp)框架,利用注入计算机脚本语言(例如JS)达到修改网页显示效果的目的,例如uc浏览的论坛模式,其通常采用的做法是生成一个论坛模式的页面,并隐藏原有网页页面。然而,该做法存在着一定的问题。因为原网页可能会运行着一些JS代码,这些JS代码通过某些事件或定时器触发,并最终可能在页面上生成一些其他的元素,影响了论坛模式页面的展示效果,从而影响用户的浏览体验。图I是根据相关技术的在移动终端上显示天涯论坛页面的示意图。如图I所示,在浏览器中生成了论坛模式的页面,并隐藏了原天 涯论坛的网页页面后,天涯论坛原有网页页面的一些JS会生成一些新的超文本标记语言(HTML)元素,例如页面底部出现的导航栏。由于这些元素的JS是通过定时器触发的,因此可能在我们注入的JS执行完后执行。这时,虽然我们隐藏了其他的HTML元素,但是它们新创建的HTML元素我们已经无法隐藏。即使不是新创建HTML元素,他们也可能把我们隐藏的原页面元素又重新显示出来。并且,这些元素的属性列表里已经预先规定了相关属性,而这些属性又具有更高的优先级,因而无法使用级联样式表(CSS)对它进行屏蔽。若通过删除这些元素的JS以避免上述情况,又可能会导致网页功能不健全或者信息不完整等负面效果。由于这些原本应该隐藏的元素出现在浏览器的页面上,导致原本清爽的论坛模式页面增加了一些其他的干扰元素,用户浏览网页的舒适度明显降低。

发明内容
本发明提供了一种页面显示的排版方法及装置,以至少解决相关技术中利用注入JS代码对页面进行排版时无法避免出现干扰元素影响页面显示效果的问题。根据本发明的一个方面,提供了一种页面显示的排版方法。根据本发明的页面显示的排版方法包括页面解析器接收来自于目标页面的文本,其中,该文本包括目标页面中按照预设排版方式设置的各个节点;页面解析器对文本中的按照预设排版方式设置的各个节点进行解析,在获取到文档结束消息后,通过第一预定调用接口调用与该第一预定调用接口对应的第一预定扩展程序对已经按照预设排版方式设置的各个节点进行重新排版,其中,第一预定调用接口和第一预定扩展程序配置在浏览器中。优选地,第一预定调用接口为预先编写的调用函数,其中,通过调用函数调用第一预定扩展程序,第一预定扩展程序用于确定各个节点的重新排版方式。优选地,第一预定调用接口为JS接口。优选地,调用与该第一预定调用接口对应的第一预定扩展程序对当前已经按照预设排版方式设置的各个节点进行重新排版包括根据第一预定扩展程序确定待重新排版的节点,并隐藏已经按照预设排版方式进行排版的各个节点中除待重新排版的节点之外的其他节点;对目标页面进行重新排版。优选地,根据第一预定扩展程序确定待重新排版的节点,并隐藏已经按照预设排版方式进行排版的各个节点中除待重新排版的节点之外的其他节点包括为已经按照预设排版方式设置的各个节点设置排版标识,其中,将确定的待重新排版的节点的排版标识设置为第一预定值,并将已经按照预设排版方式进行排版的各个节点中除待重新排版的节点之外的其他节点的排版标识设置为第二预定值;对目标页面进行重新排版包括依次对已经按照预设排版方式设置的各个节点的排版标识进行判断;对排版标识为第一预定值的节点进行重新排版。优选地,在调用与该第一预定调用接口对应的第一预定扩展程序对已经按照预设排版方式设置的各个节点进行重新排版之后,还包括页面解析器在解析到第二预定调用接口时,调用与该第二预定调用接口对应的第二预定扩展程序重新显示当前页面内已经隐藏的部分或者全部节点。 根据本发明的另一方面,提供了一种页面显示的排版装置。根据本发明的页面显示的排版装置包括接收模块,用于接收来自于目标页面的文本,其中,该文本包括目标页面中按照预设排版方式设置的各个节点;排版模块,用于对文本中的按照预设排版方式设置的各个节点进行解析,在获取到文档结束消息后,通过第一预定调用接口调用与该第一预定调用接口对应的第一预定扩展程序对已经按照预设排版方式设置的各个节点进行重新排版,其中,第一预定调用接口和第一预定扩展程序配置在浏览器中。优选地,排版模块包括处理单元,用于根据第一预定扩展程序确定待重新排版的节点,并隐藏已经按照预设排版方式进行排版的各个节点中除待重新排版的节点之外的其他节点;排版单元,用于对目标页面进行重新排版。优选地,处理单元包括设置单元,用于为已经按照预设排版方式设置的各个节点设置排版标识,其中,将确定的待重新排版的节点的排版标识设置为第一预定值,并将已经按照预设排版方式进行排版的各个节点中除待重新排版的节点之外的其他节点的排版标识设置为第二预定值;排版单元包括判断单元,用于依次对已经按照预设排版方式设置的各个节点的排版标识进行判断;执行单元,用于对排版标识为第一预定值的节点进行重新排版。优选地,上述装置还包括显示模块,用于在解析到第二预定调用接口时,调用与该第二预定调用接口对应的第二预定扩展程序重新显示当前页面内已经隐藏的部分或者全部节点。通过本发明,采用在目标页面的文本中插入第一预定调用接口,在页面解析器解析到该第一预定调用接口时,调用与该第一预定调用接口对应的扩展程序,通过按照扩展程序设定的显示方式对已经按照预设排版方式设置的各个节点进行重新排版,解决了相关技术中利用注入JS代码对页面进行排版时无法避免出现干扰元素影响页面显示效果的问题,进而避免了显示页面上出现干扰元素,提高了用户浏览网页的舒适度。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图I是根据相关技术的在移动终端上显示天涯论坛页面的示意图;图2是根据本发明实施例的页面显示的排版方法的流程图;图3是根据本发明优选实施例的页面显示的排版方法的流程图;图4是根据本发明优选实施例的重新排版后的天涯论坛显示页面的示意图;图5是根据本发明实施例的页面显示的排版装置的结构框图;以及图6是根据本发明优选实施例的页面显示的排版装置的结构框图。
具体实施例方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。图2是根据本发明实施例的页面显示的排版方法的流程图。如图2所示,该方法可以包括以下步骤步骤S202 :页面解析器接收来自于目标页面的文本,其中,该文本包括目标页面中按照预设排版方式设置的各个节点;步骤S204 :页面解析器对文本中的按照预设排版方式设置的各个节点进行解析,在获取到文档结束消息后,通过第一预定调用接口调用与该第一预定调用接口对应的第一预定扩展程序对已经按照预设排版方式设置的各个节点进行重新排版,其中,第一预定调用接口和第一预定扩展程序配置在浏览器中。相关技术中,利用注入JS代码对页面进行排版时,无法避免出现干扰元素,从而影响页面的显示效果。采用如图2所示的方法,预先在本地浏览器的客户端中新增一个第一预定调用接口,并对应该第一预定调用接口配置第一预定扩展程序,该第一预定扩展程序确定了各个节点的重新排版方式。当页面解析器解析到该第一预定调用接口时,调用与该第一预定调用接口对应的扩展程序,通过按照扩展程序设定的显示方式对已经按照预设排版方式设置的各个节点进行重新排版,解决了相关技术中利用注入JS代码对页面进行排版时无法避免出现干扰元素影响页面显示效果的问题,进而避免了显示页面上出现干扰元素,提高了用户浏览网页的舒适度。在优选实施过程中,上述第一预定调用接口为预先编写的调用函数,其中,通过调用函数调用第一预定扩展程序,第一预定扩展程序用于确定各个节点的重新排版方式。在优选实施过程中,上述第一预定调用接口可以为但不限于JS接口。在上述步骤S204中,调用与该第一预定调用接口对应的第一预定扩展程序对当前已经按照预设排版方式设置的各个节点进行重新排版可以包括以下处理步骤SI :根据第一预定扩展程序确定待重新排版的节点,并隐藏已经按照预设排版方式进行排版的各个节点中除待重新排版的节点之外的其他节点。步骤S2 :对目标页面进行重新排版。通过调用扩展程序可以让浏览器只显示某个或某些节点,而让其他的节点均被隐藏。由此,即使存在可以通过定时器或其他方式触发的JS,都无法对已经生成的目标页面造成影响。假设有A、B、C三个节点已经按照预设的排版方式进行显示,当页面解析器解析到第一预定调用接口时,调用第一预定扩展程序,其中,第一预定扩展程序的设置为对A节点和B节点进行重新排版。此时,浏览器会根据第一预定扩展程序的设置对目标页面中的A节点和B节点进行重新排版,而将C节点进行隐藏。在上述步骤SI中,根据第一预定扩展程序确定待重新排版的节点,并隐藏已经按照预设排版方式进行排版的各个节点中除待重新排版的节点之外的其他节点可以包括以下操作为已经按照预设排版方式设置的各个节点设置排版标识,其中,将确定的待重新排版的节点的排版标识设置为第一预定值,并将已经按照预设排版方式进行排版的各个节点中除待重新排版的节点之外的其他节点的排版标识设置为第二预定值。 在本发明的一个实施例中,可以为已经按照预设排版方式设置的各个节点设置排版标识,通过各个节点的排版标识确定各个节点中哪些节点需要重新排版,而又有哪些节点需要被隐藏。当节点的排版标识为第一预定值(如true)时,表示该节点需要进行排版;当节点的排版标识为第二预定值(如false)时,表示该节点需要被隐藏。在上述步骤S2中,对目标页面进行重新排版可以包括以下操作步骤S21 :依次对已经按照预设排版方式设置的各个节点的排版标识进行判断;步骤S22 :对排版标识为第一预定值的节点进行重新排版。在本发明的另一个实施例中,在排版流程中插入一些判断,根据各个节点的排版标识的取值判断某个节点是否需要排版。只有在节点的排版标识为第一预定值时,才对该节点进行排版。此外,在上述步骤S204,在调用与该第一预定调用接口对应的第一预定扩展程序对已经按照预设排版方式设置的各个节点进行重新排版之后,还可以包括以下步骤步骤S206 :页面解析器在解析到第二预定调用接口(例如ucweb.ui. unsetRenderElements)时,调用与该第二预定调用接口对应的第二预定扩展程序重新显示当前页面内已经隐藏的部分或者全部节点。在本发明的再一个实施例中,所述第一预定调用接口为一 JS接口对象,在浏览器的JS中新增一个JS接口对象,并对应该JS接口对象配置第一预定扩展程序,假设将该JS接口对象取名为“ucweb. ui”,可以通过该接口来控制浏览器的用户界面(User Interface,简称为UI),为该JS接口对象添加相应的函数和属性,通过调用该函数实现调用所述第一预定扩展程序。假设其中的一个函数名为“renderElements”,可以通过调用这个函数,就可以更改浏览器的排版方式,让浏览器只排版参数指定的节点,该参数需要包括待排版的节点对象的集合(可以是一个,也可以是多个)。该新增的JS接口,可以利用JS代码,通过层层调用,最终达到改变浏览器排版方式的效果。该接口可以给WebApp的Content Script调用。Web App开发者通过使用新增的JS接口,利用Web App框架的内容脚本(ContentScript),能在网页加载的文档结束(D0CUMENT_END)阶段,通知各个Web App相应的注册JS文件。可以利用这些JS文件设置排版的节点。图3是该优选实施例的页面显示的排版方法的流程图。如图3所示,在该优选实施例中,可以在展示浏览器网页页面时,利用浏览器新增的JS接口,从而控制浏览器排版的方式。需要说明的是,浏览器内核负责对网页进行加载、显示、以及JS的执行的部分,是浏览器的核心,包括JS引擎以及排版渲染引擎JS前端是指网页中的JS代码JS引擎是指浏览器中与JS执行相关的模块。该优选实施例可以包括以下处理步骤步骤S302 :浏览器内核在JS引擎中扩展一个JS接口对象,并在这个JS接口对象中添加一个JS子对象;步骤S304 :浏览器内核在这个JS子对象中添加UI操作相关的函数,通过绑定(Bindings)模块将JS映射到内核,以完成对内核中与排版显示相关部分的调用,这样就能通过JS函数调到内核的排版显示模块;步骤S306 :当页面解析器解析到JS接口改变排版节点(即调用ucweb. ui. renderElements)时,JS前端会直接通知浏览器内核。步骤S308 :浏览器内核在文档(document)内预先增加一个变量m_inSingleLayout,用于判定是否已进入单排版模式(即只排版一个节点的模式),其中,true代表已经进入单排版模式,false代表没有进入单排版模式,默认设置为false。当浏览器内核接收到JS前端的通知后,将document的m_inSingleLayout设置为true,并记录下需要排版的节点nusingleRender(设置只排版某些节点的JS函数接口的参数存入的就是需要排版的节点)。步骤S310 :浏览器内核遍历整个render树,然后设置所有待排版的对象(RenderObject)的 m_alIowLayout = false,其中,浏览器内核在每个 RenderObject 内新增一个排版开*m_alIowLayout,用于判定是否允许当前节点进行排版,若m_alIowLayout=ture,则表示当前节点需要进行排版;若m_alIowLayout = false,则表示当前节点不需要进行排版。步骤S312 :浏览器内核再次遍历需要排版的节点的RenderObject,并将该RenderObject的所有子节点、该RenderObject的所有祖先节点以及该RenderObject节点本身的m_allowLayout都设为true,表示该些节点需要进行排版。在排版流程中插入一些判断,根据m_allowLayout的取值判断某个节点是否需要排版。当节点m_allowLayout的属性值为true时,才对该节点进行排版。如果后续有新的节点插入到dom树,并生成对应的RenderObject时,先判断该节点是否属于m_singleRender的子节点、祖先节点,如果是则设置该节点的m_allowLayout的属性值为true,否则置为false。优选地,在调用与该JS接口对象对应的第一预定扩展程序对已经按照预设排版方式设置的各个节点进行重新排版之后,还可以包括以下步骤页面解析器在解析到另一 JS接口对象,该另一 JS接口对象也被配置于浏览器中,并对应该另一 JS接口对象配置第二预定扩展程序,假设该另一 JS接口对象被添加的一个函数名为“renderElements”,可以通过调用这个函数,调用该第二预定扩展程序,就可以达到解除某些排版节点的显示,当解除了所有的节点的排版之后,就不再隐藏所有其他的网页元素了,会将所有的节点都重新显示出来。该步骤具体为,JS前端将函数调用的消息通知给浏览器内核。浏览器内核查找出“解除设置只排版节点”的RenderObject,并遍历其他的RenderOb ject,确认是否存在非自身,非祖先、也非子节点的m_allowLayout的属性值为true。如果存在,则将“解除设置只排版节点”的RenderObject的m_allowLayout属性设置为false ;如果不存在,则将document的m_inSingleLayout设置为false。浏览器内核遍历整个render树,然后将所有RenderObject的m_alIowLayout设置为true。浏览器内核重新排版整个页面。图4是根据本发明重新排版后的天涯论坛显示页面的示意图。如图4所示,浏览器仅排版指定的节点。虽然那个导航栏是在后期由JS生成的,但是通过设定第一预定调用接口,调用第一预定扩展程序对页面进行重新排版后,当前论坛模式的页面上将不再显示多余的干扰元素。此外,根据本发明可以实现一个WebApp查图程序,能在任意的网页上以类似windows图片查看器的效果查看当前网页上的所有图片。相关技术中,当启动该查看器之后,会隐藏原有页面,并生成一个新的元素让该元素显示查图程序。然而,一个后期生成的广告元素可能突然加载完成并在图片查看器的上方显示,这样就造成了很坏的体验效果。采用本发明的技术方案,让浏览器只排版图片查看器,由此,不仅不需要手动去隐藏网页的 所有元素,也不会出现显示页面被广告遮避的问题。图5是根据本发明实施例的页面显示的排版装置的结构框图。如图5所示,该页面显示的排版装置可以包括接收模块10,用于接收来自于目标页面的文本,其中,该文本包括目标页面中按照预设排版方式设置的各个节点;排版模块20,用于对文本中的按照预设排版方式设置的各个节点进行解析,在获取到文档结束消息后,通过第一预定调用接口调用与该第一预定调用接口对应的第一预定扩展程序对已经按照预设排版方式设置的各个节点进行重新排版,其中,第一预定调用接口和第一预定扩展程序配置在浏览器中。采用如图5所示的装置,解决了相关技术中利用注入JS代码对页面进行排版时无法避免出现干扰元素影响页面显示效果的问题,进而避免了显示页面上出现干扰元素,提高了用户浏览网页的舒适度。优选地,如图6所示,上述排版模块20可以包括处理单元200,用于根据第一预定扩展程序确定待重新排版的节点,并隐藏已经按照预设排版方式进行排版的各个节点中除待重新排版的节点之外的其他节点;排版单元202,用于对目标页面进行重新排版。优选地,如图6所示,上述处理单元200可以包括设置单元2000,用于为已经按照预设排版方式设置的各个节点设置排版标识,其中,将确定的待重新排版的节点的排版标识设置为第一预定值,并将已经按照预设排版方式进行排版的各个节点中除待重新排版的节点之外的其他节点的排版标识设置为第二预定值。优选地,如图6所示,上述排版单元202可以包括判断单元2020,用于依次对已经按照预设排版方式设置的各个节点的排版标识进行判断;执行单元2022,用于对排版标识为第一预定值的节点进行重新排版。优选地,如图6所示,上述装置还可以包括显示模块30,用于在解析到第二预定调用接口时,调用与该第二预定调用接口对应的第二预定扩展程序重新显示当前页面内已经隐藏的部分或者全部节点。需要说明的是,图5和图6中所示的各模块以及各单元之间相互作用的优选工作方式可以参见图2至图4所示的优选实施例,此处不再赘述。
从以上的描述中,可以看出,上述实施例实现了如下技术效果(需要说明的是这些效果是某些优选实施例可以达到的效果)让浏览器只排版指定的节点,以达到不被原页面元素干扰的目的。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种页面显示的排版方法,其特征在于,包括 页面解析器接收来自于目标页面的文本,其中,该文本包括所述目标页面中按照预设排版方式设置的各个节点; 所述页面解析器对所述文本中的按照所述预设排版方式设置的各个节点进行解析,在获取到文档结束消息后,通过第一预定调用接口调用与该第一预定调用接口对应的第一预定扩展程序对已经按照预设排版方式设置的各个节点进行重新排版,其中,所述第一预定调用接口和所述第一预定扩展程序配置在浏览器中。
2.根据权利要求I所述的方法,其特征在于,所述第一预定调用接口为预先编写的调用函数,其中,通过所述调用函数调用所述第一预定扩展程序,所述第一预定扩展程序用于确定所述各个节点的重新排版方式。
3.根据权利要求I或2所述的方法,其特征在于,所述第一预定调用接口为JS接口。
4.根据权利要求I所述的方法,其特征在于,调用与该第一预定调用接口对应的第一预定扩展程序对当前已经按照预设排版方式设置的各个节点进行重新排版包括 根据所述第一预定扩展程序确定待重新排版的节点,并隐藏所述已经按照预设排版方式进行排版的各个节点中除所述待重新排版的节点之外的其他节点; 对所述目标页面进行重新排版。
5.根据权利要求4所述的方法,其特征在于, 根据所述第一预定扩展程序确定待重新排版的节点,并隐藏所述已经按照预设排版方式进行排版的各个节点中除所述待重新排版的节点之外的其他节点包括 为已经按照预设排版方式设置的各个节点设置排版标识,其中,将所述确定的待重新排版的节点的所述排版标识设置为第一预定值,并将所述已经按照预设排版方式进行排版的各个节点中除所述待重新排版的节点之外的其他节点的所述排版标识设置为第二预定值; 对所述目标页面进行重新排版包括 依次对所述已经按照预设排版方式设置的各个节点的排版标识进行判断; 对所述排版标识为所述第一预定值的节点进行重新排版。
6.根据权利要求I所述的方法,其特征在于,在调用与该第一预定调用接口对应的第一预定扩展程序对已经按照预设排版方式设置的各个节点进行重新排版之后,还包括 所述页面解析器在解析到第二预定调用接口时,调用与该第二预定调用接口对应的第二预定扩展程序重新显示当前页面内已经隐藏的部分或者全部节点。
7.一种页面显示的排版装置,其特征在于,包括 接收模块,用于接收来自于目标页面的文本,其中,该文本包括所述目标页面中按照预设排版方式设置的各个节点; 排版模块,用于对所述文本中的按照所述预设排版方式设置的各个节点进行解析,在获取到文档结束消息后,通过第一预定调用接口调用与该第一预定调用接口对应的第一预定扩展程序对已经按照预设排版方式设置的各个节点进行重新排版,其中,所述第一预定调用接口和所述第一预定扩展程序配置在浏览器中。
8.根据权利要求7所述的装置,其特征在于,所述排版模块包括 处理单元,用于根据所述第一预定扩展程序确定待重新排版的节点,并隐藏所述已经按照预设排版方式进行排版的各个节点中除所述待重新排版的节点之外的其他节点; 排版单元,用于对所述目标页面进行重新排版。
9.根据权利要求8所述的装置,其特征在于, 所述处理单元包括 设置单元,用于为已经按照预设排版方式设置的各个节点设置排版标识,其中,将所述确定的待重新排版的节点的所述排版标识设置为第一预定值,并将所述已经按照预设排版方式进行排版的各个节点中除所述待重新排版的节点之外的其他节点的所述排版标识设置为第二预定值; 所述排版单元包括 判断单元,用于依次对所述已经按照预设排版方式设置的各个节点的排版标识进行判断; 执行单元,用于对所述排版标识为所述第一预定值的节点进行重新排版。
10.根据权利要求7所述的装置,其特征在于,所述装置还包括 显示模块,用于在解析到第二预定调用接口时,调用与该第二预定调用接口对应的第二预定扩展程序重新显示当前页面内已经隐藏的部分或者全部节点。
全文摘要
本发明公开了一种页面显示的排版方法及装置,在上述方法中,页面解析器接收来自于目标页面的文本,其中,该文本包括目标页面中按照预设排版方式设置的各个节点;页面解析器对文本中的按照预设排版方式设置的各个节点进行解析,在获取到文档结束消息后,通过第一预定调用接口调用与该第一预定调用接口对应的第一预定扩展程序对已经按照预设排版方式设置的各个节点进行重新排版,其中,第一预定调用接口和第一预定扩展程序配置在浏览器中。根据本发明提供的技术方案,避免了显示页面上出现干扰元素,提高了用户浏览网页的舒适度。
文档编号G06F17/30GK102831212SQ201210289330
公开日2012年12月19日 申请日期2012年8月14日 优先权日2012年8月14日
发明者梁捷, 俞永福, 何小鹏, 朱顺炎, 马妙魁 申请人:优视科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1