多浏览器平台执行javascript脚本的方法及装置制造方法及图纸

技术编号:11076124 阅读:51 留言:0更新日期:2015-02-25 14:33
一种多浏览器平台执行javascript脚本的方法,包括:加载预设的代码替换脚本,所述代码替换脚本中定义有通过javascript原型机制定义的与浏览器版本适配的属性调用和/或函数调用的实现代码;接收javascript执行指令,获取相应的执行语句,所述执行语句包括属性调用和/或函数调用;获取浏览器版本信息;根据浏览器版本信息调用所述代码替换脚本中定义的与所述属性调用和/或函数调用对应的实现代码执行。此外,还提供了一种多浏览器平台执行javascript脚本的装置。上述多浏览器平台执行javascript脚本的方法及装置能够降低维护或移植的开销。

【技术实现步骤摘要】
多浏览器平台执行javascript脚本的方法及装置
本专利技术涉及互联网
,特别是涉及一种多浏览器平台执行javascript脚 本的方法及装置。
技术介绍
现在的浏览器市场上充斥着大量的浏览器产品,包括IEX虹ome、Firefox、化era、 360浏览器、搜狗浏览器、猎豹浏览器、百度浏览器、qq浏览器等。如此多的浏览器,带给使 用者的是不同的用户体验,而带给开发者的,却是极大的开发难度。现有的浏览器产品的内 核通常为W下H种浏览器内核中的一种;IE内核、C虹ome内核和化efox内核,而基于不同 的浏览器内核的浏览器产品对javascript脚本的解析方式往往存在一些差异,从而使得 某些javascript语句在特定的浏览器上无法正常执行。 为了使网页上的javascript脚本能够在多种浏览器上均能正常运行,开发人员 在进行web程序开发时,通常需要在javascript语句调用存在差异的位置加入浏览器类 型判断的代码,因此编写的代码量较多。针对上述问题,在新开发web系统时,虽然可通过 封装函数的方式对该代码进行封装,但对于移植的web系统或者在对现有的web系统进行 维护时,若对现有代码中的javascript语句进行封装函数的替换,则需要替换的代码量较 大,而且批量替换容易出错,从而造成了代码维护或移植的开销较大。
技术实现思路
基于此,有必要提供一种能够降低维护或移植的开销的多浏览器平台执行 javascript脚本的方法。 -种多浏览器平台执行javascript脚本的方法,包括: 加载预设的代码替换脚本,所述代码替换脚本中定义有通过javascript原型机 制定义的与浏览器版本适配的属性调用和/或函数调用的实现代码; 接收javascript执行指令,获取相应的执行语句,所述执行语句包括属性调用和 /或函数调用; 获取浏览器版本信息; 根据浏览器版本信息调用所述代码替换脚本中定义的与所述属性调用和/或函 数调用对应的实现代码执行。 在其中一个实施例中,所述根据浏览器版本信息调用所述代码替换脚本中定义的 与所述属性调用和/或函数调用对应的实现代码执行的步骤包括: 在所述执行语句为属性调用时,调用所述代码替换脚本中通过原型set函数或原 型get函数定义的属性获取函数或属性赋值函数。 在其中一个实施例中,所述根据浏览器版本信息调用所述代码替换脚本中定义的 与所述属性调用和/或函数调用对应的实现代码执行的步骤包括: 在所述执行语句为函数调用时,调用所述代码替换脚本中通过原型机制添加的与 所述函数对应的与所述浏览器版本信息适配的实现代码。 在其中一个实施例中,所述根据浏览器版本信息调用所述代码替换脚本中定义的 与所述属性调用和/或函数调用对应的实现代码执行的步骤包括: 在所述执行语句为函数调用时,调用所述代码替换脚本中通过原型机制替换的与 所述函数对应的与所述浏览器版本信息适配的实现代码。 在其中一个实施例中,所述加载预设的代码替换脚本的步骤为: 获取网页中定义的代码替换脚本的链接,通过网络抓取与所述链接对应的代码替 换脚本进行加载。 此外,还有必要提供一种能够降低维护或移植的开销的多浏览器平台执行 javascript脚本的装置。 一种多浏览器平台执行javascript脚本的装置,包括: 转换脚本加载模块,用于加载预设的代码替换脚本,所述代码替换脚本中定义有 通过javascript原型机制定义的与浏览器版本适配的属性调用和/或函数调用的实现代 码; 执行语句获取模块,用于接收javascript执行指令,获取相应的执行语句,所述 执行语句包括属性调用和/或函数调用; 浏览器版本获取模块,用于获取浏览器版本信息; 代码替换执行模块,用于根据浏览器版本信息调用所述代码替换脚本中定义的与 所述属性调用和/或函数调用对应的实现代码执行。 在其中一个实施例中,所述代码转换执行模块还用于在所述执行语句为属性调用 时,调用所述代码替换脚本中通过原型set函数或原型get函数定义的属性获取函数或属 性赋值函数。 在其中一个实施例中,所述代码转换执行模块还用于在所述执行语句为函数调用 时,调用所述代码替换脚本中通过原型机制添加的与所述函数对应的与所述浏览器版本信 息适配的实现代码。 在其中一个实施例中,所述代码转换执行模块还用于在所述执行语句为函数调用 时,调用所述代码替换脚本中通过原型机制替换的与所述函数对应的与所述浏览器版本信 息适配的实现代码。 在其中一个实施例中,所述转换脚本加载模块还用于获取网页中定义的代码替换 脚本的链接,通过网络抓取与所述链接对应的代码替换脚本进行加载。 上述多浏览器平台执行javascript脚本的方法和装置中,程序开发人员或维护 人员只需要根据不同浏览器之间的差异,预先在代码替换脚本中定义存在兼容性问题的属 性调用和函数调用的实现代码,然后在网页的起始位置加载该代码替换脚本,即可使得各 种浏览器在解析现有的已完成的javascript代码W及后续开发将要生成的javascript代 码时,能够通过转而执行代码替换脚本中定义的替换的实现代码而避免兼容性问题造成的 浏览器运行不正常的情况。也就是说,程序开发人员和程序维护人员只需要定义一份代码 替换脚本,而不需要对整个web程序中的所有javascript代码进行替换和修改,因此维护 或移植的开销较小,而且出错的几率较小。 【附图说明】 图1为一个实施例中多浏览器平台执行javascript脚本的方法的流程图; 图2为一个实施例中IE浏览器下的innerText属性效果图; 图3为一个实施例中IE浏览器下的moveRow函数效果图; 图4为一个实施例中IE浏览器下的insedRow函数的效果图; 图5为一个实施例中dirome浏览器下的insedRow函数的效果图; 图6为一个实施例中多浏览器平台执行javascript脚本的装置的结构示意图。 【具体实施方式】 [00巧]Javascript,是一种基于对象的动态类型的区分大小写的客户端脚本语言。Netscape在最初将其脚本语言命名为LiveScript,JavaScript的主要设计原则源自Self 和Scheme。为了取得技术优势,微软推出了JScript来迎战化vaScript的脚本语言。为了 互用性,Ecma国际(前身为欧洲计算机制造商协会)创建了ECMA-262标准巧CMAScript)。 现在两者都属于ECMAScript的实现。尽管化vaScript作为给非程序人员的脚本语言,而 非作为给程序人员的脚本语言来推广和宣传,但是化vaScript具有非常丰富的特性。 由此可见,化vaScript在各个浏览器产品上存在兼容性问题,即因为不同的浏览 器对同一段化vaScript代码有不同的解析,造成页面显示时表现不一致,该种不一致主要 表现为显示差异和语法差异,前者的表现通常就是元素的位置、大小、颜色等的视觉差异, 而后者的表现通常就是打开页面失败、页面加载不完整、浏览器提本文档来自技高网...

【技术保护点】
一种多浏览器平台执行javascript脚本的方法,包括:加载预设的代码替换脚本,所述代码替换脚本中定义有通过javascript原型机制定义的与浏览器版本适配的属性调用和/或函数调用的实现代码;接收javascript执行指令,获取相应的执行语句,所述执行语句包括属性调用和/或函数调用;获取浏览器版本信息;根据浏览器版本信息调用所述代码替换脚本中定义的与所述属性调用和/或函数调用对应的实现代码执行。

【技术特征摘要】
1. 一种多浏览器平台执行javascript脚本的方法,包括: 加载预设的代码替换脚本,所述代码替换脚本中定义有通过javascript原型机制定 义的与浏览器版本适配的属性调用和/或函数调用的实现代码; 接收javascript执行指令,获取相应的执行语句,所述执行语句包括属性调用和/或 函数调用; 获取浏览器版本信息; 根据浏览器版本信息调用所述代码替换脚本中定义的与所述属性调用和/或函数调 用对应的实现代码执行。2. 根据权利要求1所述的多浏览器平台执行javascript脚本的方法,其特征在于,所 述根据浏览器版本信息调用所述代码替换脚本中定义的与所述属性调用和/或函数调用 对应的实现代码执行的步骤包括: 在所述执行语句为属性调用时,调用所述代码替换脚本中通过原型set函数或原型 get函数定义的属性获取函数或属性赋值函数。3. 根据权利要求1所述的多浏览器平台执行javascript脚本的方法,其特征在于,所 述根据浏览器版本信息调用所述代码替换脚本中定义的与所述属性调用和/或函数调用 对应的实现代码执行的步骤包括: 在所述执行语句为函数调用时,调用所述代码替换脚本中通过原型机制添加的与所述 函数对应的与所述浏览器版本信息适配的实现代码。4. 根据权利要求1所述的多浏览器平台执行javascript脚本的方法,其特征在于,所 述根据浏览器版本信息调用所述代码替换脚本中定义的与所述属性调用和/或函数调用 对应的实现代码执行的步骤包括: 在所述执行语句为函数调用时,调用所述代码替换脚本中通过原型机制替换的与所述 函数对应的与所述浏览器版本信息适配的实现代码。5. 根据权利要求1所述的多浏览器平台执行javascript脚本的方法,其特征在于,所 述加载预设的代码替换脚本的步骤为: 获取...

【专利技术属性】
技术研发人员:董伟
申请(专利权)人:深信服网络科技深圳有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1