一种浏览器兼容方法及浏览器与流程

文档序号:12747779阅读:154来源:国知局
一种浏览器兼容方法及浏览器与流程

本发明涉及计算机信息技术领域,尤其涉及一种浏览器兼容方法及浏览器。



背景技术:

随着因特网的快速发展,及HTML5规范的逐步完善,浏览器技术得到了更加广泛的应用,除了在传统的PC领域,在现在的新兴领域:智能手机、机顶盒等设备上也得到了大量的使用,是最经常使用到的客户端程序。

浏览器是指可以显示网页服务器或者文件系统的标准通用标记语言HTML文件内容,并让用户与这些文件进行交互的一种软件。

现在市场上的浏览器种类非常多,但是浏览器内核引擎主要有三种:Trident、Gecko和WebKit;其中,IE浏览器以Trident作为内核引擎,Firefox基于Gecko开发;Safari、Google和Chrome基于Webkit开发的。

虽然各个浏览器内核引擎在实现上各异,但是都遵循现有的规范,所以用户在使用时几乎没有太大差异,但是不同内核引擎的浏览器也会存在一些个体的差异,从而导致一些特定的网页在不同的浏览器上的显示效果不同,甚至是无法显示的情况。例如IE支持的语法在新兴的浏览器(如Chrome)上,并不一定支持,使用IE语法写得较“老”的网页,在Chrome上就可能无法正常的显示。

因此,如何解决不同内核引擎的浏览器之间的兼容问题亟待解决。



技术实现要素:

为了解决上述技术问题,本发明提供了一种浏览器兼容方法及浏览器,解决了现有技术中浏览器兼容性差的问题。

依据本发明的一个方面,提供了一种浏览器兼容方法,包括:

根据访问请求的URL信息,加载目标网页的脚本文件;

若预置规则库中存在脚本文件中的目标语法信息,则将目标语法信息对应的当前浏览器内核引擎下的语法信息替换目标语法信息,生成一新脚本文件;其中,预置规则库中记录有不同内核引擎下语法信息之间的映射关系;

对新脚本文件进行解析和渲染,进而显示目标网页。

其中,根据访问请求的URL信息,加载目标网页的脚本文件的步骤包括:

根据用户输入的访问请求,获取访问请求的URL信息;

根据URL信息,从目标服务器下载目标网页的脚本文件。

其中,根据访问请求的URL信息,加载目标网页的脚本文件的步骤之后,还包括:

检测预置规则库中是否存在与URL信息相匹配的目标URL信息;

若不存在,则对脚本文件进行解析和渲染,进而显示目标网页。

其中,在检测预置规则库中是否存在与URL信息相匹配的目标URL信息的步骤之后,还包括:

当检测到预置规则库中存在与URL信息相匹配的目标URL信息时,检测预置规则库中是否存在脚本文件中的目标语法信息;

若不存在,则对脚本文件进行解析和渲染,进而显示目标网页。

其中,若预置规则库中存在脚本文件中的目标语法信息,则将目标语法信息对应的当前浏览器内核引擎下的语法信息替换目标语法信息,生成一新脚本文件的步骤包括:

当检测到预置规则库中存在脚本文件中的目标语法信息时,获取当前浏览器的内核引擎;

根据内核引擎,在预置规则库中查找与目标语法信息对应的语法信息;

将语法信息替换目标语法信息,生成一新脚本文件。

依据本发明的另一个方面,还提供了一种浏览器,包括:

加载模块,用于根据访问请求的URL信息,加载目标网页的脚本文件;

匹配替换模块,用于当预置规则库中存在脚本文件中的目标语法信息时,将目标语法信息对应的当前浏览器内核引擎下的语法信息替换目标语法信息,生成一新脚本文件;其中,预置规则库中记录有不同内核引擎下语法信息之间的映射关系;

显示模块,用于对新脚本文件进行解析和渲染,进而显示目标网页。

其中,加载模块包括:

第一获取单元,用于根据用户输入的访问请求,获取访问请求的URL信息;

下载单元,用于根据URL信息,从目标服务器下载目标网页的脚本文件。

其中,浏览器还包括:

第一检测模块,用于检测预置规则库中是否存在与URL信息相匹配的目标URL信息;

若不存在,则对脚本文件进行解析和渲染,进而显示目标网页。

其中,浏览器还包括:

第二检测模块,用于当检测到预置规则库中存在与URL信息相匹配的目标URL信息时,检测预置规则库中是否存在脚本文件中的目标语法信息;

若不存在,则对脚本文件进行解析和渲染,进而显示目标网页。

其中,匹配替换模块包括:

第二获取单元,用于当检测到预置规则库中存在脚本文件中的目标语法信息时,获取当前浏览器的内核引擎;

查找单元,用于根据内核引擎,在预置规则库中查找与目标语法信息对应的语法信息;

替换单元,用于将语法信息替换目标语法信息,生成一新脚本文件。

本发明的实施例的有益效果是:一种浏览器兼容方法及浏览器,当目标网页的脚本文件中存在与当前浏览器内核引擎不兼容的语法信息时,根据预设规则库中不同内核引擎下语法信息之间的映射关系,对不兼容的语法信息进行替换,生成新脚本文件,进而对该新脚本文件进行解析和渲染,以实现浏览器对各种网页脚本文件的兼容,从而达到更好的显示网页的效果。

附图说明

图1表示本发明的浏览器兼容方法的流程示意图;

图2表示本发明的浏览器兼容方法的具体流程示意图;

图3表示本发明的浏览器的模块示意图。

其中图中:101、加载模块,201、匹配替换模块,301、显示模块。

具体实施方式

下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。

为了解决不同内核引擎下网页脚本的兼容问题,本发明的实施例中提供了一种浏览器兼容方法,具体包括如图1所示的步骤:

步骤S10:根据访问请求的URL信息,加载目标网页的脚本文件。

步骤S20:若预置规则库中存在脚本文件中的目标语法信息,则将目标语法信息对应的当前浏览器内核引擎下的语法信息替换目标语法信息,生成一新脚本文件。

其中,预置规则库中记录有不同内核引擎下语法信息之间的映射关系,这里指的是,比如指示图片位置的语法在Trident内核引擎下为语法A,在Gecko内核引擎下为语法B,在WebKit内核引擎下为语法C,预置规则库中将记录语法A、语法B和语法C之间的映射关系。这样,当基于Trident内核引擎编写的脚本文件,在基于Gecko内核引擎的浏览器中解析时,可能会存在编译错误而导致网页显示不正常或无法显示的情况。这时,根据预置规则库中记录的映射关系,将不兼容的语法信息替换为当前浏览器内核引擎下的语法信息,从而生成一新脚本文件。

步骤S30:对新脚本文件进行解析和渲染,进而显示目标网页。

由于新脚本文件中的语法信息均为当前浏览器内核引擎下的语法信息,对该新脚本文件进行解析和渲染,从而正确显示目标网页,实现不同内核引擎浏览器的兼容,是浏览器更加健壮。

其中,上述提及的步骤S10具体包括:

根据用户输入的访问请求,获取访问请求的URL信息。

在用户需要访问某个网页时,以百度为例,用户在当前浏览器的界面输入百度网页的URL信息,如“百度”、“baidu”或“www.baidu.com”等关键字, 从而得到访问请求的URL信息。

根据URL信息,从目标服务器下载目标网页的脚本文件。

根据访问请求的URL信息,如“www.baidu.com”,在目标服务器,即百度服务器下载目标网页的脚本信息,即得到百度首页的脚本信息。

其中,在步骤S10之后,该兼容方法还包括:

检测预置规则库中是否存在与URL信息相匹配的目标URL信息,若不存在,则对脚本文件进行解析和渲染,进而显示目标网页。

这里指的是,为了提高运行速度,浏览器并不会对全部网页进行兼容替换处理,只对部分预置网页进行兼容处理。可预先将需要兼容处理的目标网页的URL信息存储于预置规则库中。当加载目标网页的脚本信息后,需要检测目标网页是否是预置规则库中记录的需要兼容的预置网页,如果不是,则直接对目标网页的脚本文件进行解析和渲染,进而显示目标网页。

其中,当检测到预置规则库中存在与URL信息相匹配的目标URL信息时,检测预置规则库中是否存在脚本文件中的目标语法信息;若不存在,则对脚本文件进行解析和渲染,进而显示目标网页;若存在,则对对应的目标语法信息进行替换。

其中,步骤S20中对目标语法信息进行替换的具体步骤包括:

当检测到预置规则库中存在脚本文件中的目标语法信息时,获取当前浏览器的内核引擎。这里指的是,在检测到预置规则库中存在目标语法信息时,则表示该目标语法信息在不同内核引擎下不兼容,这时需要获取当前浏览器的内核引擎,以便于后续查找该内核引擎对应的语法信息。

根据内核引擎,在预置规则库中查找与目标语法信息对应的语法信息。这里指的是,在知晓当前浏览器内核引擎后,根据该内核引擎的信息在预置规则库中查找该内核引擎下与目标语法信息对应的语法信息。

将语法信息替换目标语法信息,生成一新脚本文件。将查找到的语法信息替换目标语法信息,写入脚本文件中,从而生成一新脚本文件。

具体地,上述兼容方法的具体实现示例如图2所示,具体包括:

步骤01:根据访问请求的URL信息,加载目标网页的脚本文件。

步骤02:检测预置规则库中是否存在与目标网页的URL相匹配的URL。

若不存在,则执行步骤05:对脚本文件进行解析和渲染,并显示目标网页。

若存在,则执行步骤03:检测预置规则库中是否存在脚本文件中的目标语法信息。

若不存在,则执行步骤05:对脚本文件进行解析和渲染,并显示目标网页。

若存在,则执行步骤04:将将目标语法信息对应的当前浏览器内核引擎下的语法信息替换目标语法信息,生成一新脚本文件。进而再执行步骤05:对脚本文件进行解析和渲染,并显示目标网页的步骤。

例如:脚本文件中包括下述语法信息:

<<html_url>>VOD_Test_1.html<</html_url>>

<<source_str>>window.history.back();<</source_str>>

<<replace_str>>GoBack();<</replace_str>>

其中,“html_url”所指的内容为就是用户输入的请求访问的网页的URL的字符串,“source_str”所指内容是原脚本文件中的目标字符串,即待替换字符串或需要进行兼容的字符串,而“replace_str”所指内容是预设规则库中记录的与待替换字符串对应的当前浏览器内核引擎下的字符串。在本例中:“html_url”所指的内容为:VOD_Test_1.html,首先需要在预设规则库中查找是否记录有“VOD_Test_1.html”,如果没有,则直接对VOD_Test_1.html所对应的脚本文件进行解析和渲染;如果存在,则对其脚本文件中的字符串与预设规则库中的字符串进行匹配,其中,在本例中:“source_str”所指内容为:window.history.back();“replace_str”所指内容为:GoBack();找到URL对应的“source_str”所指内容,并与目标网页原脚本文件进行字符串匹配,如果不能匹配,则将原脚本文件作为最终显示的网页脚本文件,即脚本文件中的字符串仍为“window.history.back()”;如果匹配,那么就将“source_str”所指内容GoBack(),替换为“replace_str”所指内容window.history.back(),并将替换后的内容写回原网页脚本,这样得到的新脚本文件就是用于最终显示的脚本。

以上,具体介绍了浏览器兼容方法,当目标网页的脚本文件中存在与当前浏览器内核引擎不兼容的语法信息时,根据预设规则库中不同内核引擎下语法 信息之间的映射关系,对不兼容的语法信息进行替换,生成新脚本文件,进而对该新脚本文件进行解析和渲染,以实现浏览器对各种网页脚本文件的兼容,从而达到更好的显示网页的效果。

除此之外,随着浏览器技术的飞速发展,网页脚本也海量增长,那么网页前端开发人员就难免会写出一些有“问题”的网页,如网页脚本中存在语法错误等等,那么用户在使用浏览器上网的过程中访问到这些“问题”网页,就会出现显示错误或者无法访问的情况。为了解决上述问题,可在预设规则库中记录常见的语法错误与正确语法之间的映射关系,或在预设规则库中记录已知错误语法与正确语法之间的映射关系,这样,当遇到问题网页时,将正确语法信息替换错误的语法信息,即可保证浏览器的容错性,改善用户体验。而具体的实现方式与上述兼容性问题的解决方案类似,故不在此赘述。

以上是对本发明实施例的浏览器兼容方法的具体说明,下面将结合图3对对应的浏览器做进一步说明,其中,该浏览器包括:

加载模块101,用于根据访问请求的URL信息,加载目标网页的脚本文件;

匹配替换模块201,用于当预置规则库中存在脚本文件中的目标语法信息时,将目标语法信息对应的当前浏览器内核引擎下的语法信息替换目标语法信息,生成一新脚本文件;其中,预置规则库中记录有不同内核引擎下语法信息之间的映射关系;

显示模块301,用于对新脚本文件进行解析和渲染,进而显示目标网页。

其中,加载模块包括:

第一获取单元,用于根据用户输入的访问请求,获取访问请求的URL信息;

下载单元,用于根据URL信息,从目标服务器下载目标网页的脚本文件。

其中,浏览器还包括:

第一检测模块,用于检测预置规则库中是否存在与URL信息相匹配的目标URL信息;

若不存在,则对脚本文件进行解析和渲染,进而显示目标网页。

其中,浏览器还包括:

第二检测模块,用于当检测到预置规则库中存在与URL信息相匹配的目标URL信息时,检测预置规则库中是否存在脚本文件中的目标语法信息;

若不存在,则对脚本文件进行解析和渲染,进而显示目标网页。

其中,匹配替换模块包括:

第二获取单元,用于当检测到预置规则库中存在脚本文件中的目标语法信息时,获取当前浏览器的内核引擎;

查找单元,用于根据内核引擎,在预置规则库中查找与目标语法信息对应的语法信息;

替换单元,用于将语法信息替换目标语法信息,生成一新脚本文件。

需要说明的是,该浏览器是与上述兼容方法对应的,上述方法实施例中所有实现方式均适用于该浏览器的实施例中,也能达到相同的技术效果。

以上所述的是本发明的优选实施方式,应当指出对于本技术领域的普通人员来说,在不脱离本发明所述的原理前提下还可以作出若干改进和润饰,这些改进和润饰也在本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1