CN111562910B - 一种封装方法及相关设备 - Google Patents

一种封装方法及相关设备 Download PDF

Info

Publication number
CN111562910B
CN111562910B CN202010380192.9A CN202010380192A CN111562910B CN 111562910 B CN111562910 B CN 111562910B CN 202010380192 A CN202010380192 A CN 202010380192A CN 111562910 B CN111562910 B CN 111562910B
Authority
CN
China
Prior art keywords
script
target
function
packaging
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010380192.9A
Other languages
English (en)
Other versions
CN111562910A (zh
Inventor
韦利东
常程
罗振
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Weaver Network Technology Co ltd
Original Assignee
Shanghai Weaver Network Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Weaver Network Technology Co ltd filed Critical Shanghai Weaver Network Technology Co ltd
Priority to CN202010380192.9A priority Critical patent/CN111562910B/zh
Publication of CN111562910A publication Critical patent/CN111562910A/zh
Application granted granted Critical
Publication of CN111562910B publication Critical patent/CN111562910B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Telephone Function (AREA)

Abstract

本申请提供了一种封装方法及相关设备,可以解决由于单页面应用的不同子页面中出现的js脚本出现了相同的变量命名和方法命名而造成的子页面间的js脚本出现冲突,造成运行异常的问题。该方法包括:获取第一js脚本;添加捕获异常代码至所述第一js脚本,得到第二js脚本;添加目标代码至所述第二js脚本,得到第三js脚本,所述目标代码用于指示获取所述第三js脚本对应的标准编程接口的范围;将所述第三js脚本放置于目标自执行函数;对放置于所述目标自执行函数后的所述第三js脚本进行封装,得到目标可执行函数。

Description

一种封装方法及相关设备
技术领域
本申请涉及通信领域,尤其涉及一种封装方法及相关设备。
背景技术
在单页应用的子页面中运行用户自定义js(JavaScript的简称,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言)脚本是移动开发平台的基本功能,其目的是让用户可以通过在移动开发平台中编写属于子页面的js脚本,利用js脚本实现特定的业务功能和页面效果。
目前在页面中运行用户自定义js脚本的技术主要为:脚本标签式以及Eval函数式;其中,该脚本标签式是将用户自定义js脚本放入到超级文本标记语言(Hyper TextMarkup Language,HTML)所支持的脚本标签中,然后将脚本标签插入到页面头部,从而达到运行用户的js脚本的目的;该Eval函数式是通过调用js中原生的函数eval,将用户的js脚本传入函数eval中,以此来运行用户的js脚本。
但是,当单页面下的子页面过多,当用户在单页应用的不同子页面中定义的js脚本出现了相同的变量命名和方法命名,将会导致用户在子页面间的js脚本出现冲突,造成运行异常的问题。
发明内容
本申请提供了一种封装方法及相关设备,可以解决由于单页面应用的不同子页面中出现的js脚本出现了相同的变量命名和方法命名而造成的子页面间的js脚本出现冲突,造成运行异常的问题。
本申请第一方面提供了一种封装方法,应用于权限控制系统,包括:
获取第一js脚本;
添加捕获异常代码至所述第一js脚本,得到第二js脚本;
添加目标代码至所述第二js脚本,得到第三js脚本,所述目标代码用于指示获取所述第三js脚本对应的标准编程接口的范围;
将所述第三js脚本放置于目标自执行函数;
对放置于所述目标自执行函数后的所述第三js脚本进行封装,得到目标可执行函数。
可选地,所述方法还包括:
接收所述用户的操作指令;
响应于所述操作指令,并根据所述操作指令运行所述目标可执行函数。
可选地,所述方法还包括:
通过所述捕获异常代码获取所述目标可执行函数运行过程中的异常信息;
基于所述异常信息输出异常日志。
可选地,所述方法包括:
发出提示信息,所述提示信息用于指示所述目标可执行函数在运行过程中的所述异常信息。
本申请第二方面提供了一种封装装置,包括:
获取单元,用于获取第一js脚本;
添加单元,用于添加捕获异常代码至所述第一js脚本,得到第二js脚本;
所述添加单元,还用于添加目标代码至所述第二js脚本,得到第三js脚本,所述目标代码用于指示获取所述第三js脚本对应的标准编程接口的范围;
处理单元,用于将所述第三js脚本放置于目标自执行函数;
封装单元,用于对放置于所述目标自执行函数后的所述第三js脚本进行封装,得到目标可执行函数。
可选地,所述封装装置还包括:
接收单元,用于接收所述用户的操作指令;
运行单元,用于响应于所述操作指令,并根据所述操作指令运行所述目标可执行函数。
可选地,所述运行单元还用于:
通过所述捕获异常代码获取所述目标可执行函数运行过程中的异常信息;
基于所述异常信息输出异常日志。
可选地,所述运行单元还用于:
发出提示信息,所述提示信息用于指示所述目标可执行函数在运行过程中的所述异常信息。
本申请第三方面提供了一种计算机装置,包括:至少一个连接的处理器、存储器和收发器;所述存储器用于存储程序代码,所述程序代码由所述处理器加载并执行以实现上述第一方面所述的封装方法的步骤。
本申请第四方面提供了一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得计算机执行上述第一方面所述的封装方法的步骤。
综上所述,可以看出,本申请提供的实施例中,添加捕获异常代码、标准变成接口的范围的目标代码,并防止与目标自执行函数,最后封装为可执行函数,由此,不但可以在目标自执行函数运行的过程中,捕获异常信息,同时限制了获取dom元素的pagedom范围,这样当用户在单页面应用的不同子页面中定义的js脚本出现了相同的变量命名和方法命名,不会导致用户在子页面间的js脚本出现冲突,由此不会造成运行异常的问题。
附图说明
图1为本申请实施例提供的封装方法的流程示意图;
图2为本申请实施例提供的封装的虚拟结构示意图;
图3为本申请实施例提供的终端设备的硬件结构示意图;
图4为本申请实施例提供的服务器的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本申请中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个系统中,或一些特征向量可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块之间的间接耦合或通信连接可以是电性或其他类似的形式,本申请中均不作限定。并且,作为分离部件说明的模块或子模块可以是也可以不是物理上的分离,可以是也可以不是物理模块,或者可以分布到多个电路模块中,可以根据实际的需要选择其中的部分或全部模块来实现本申请方案的目的。
下面从封装装置的角度对本申请的方法封装方法进行说明,该封装装置可以终端,也可以是服务器,还可以是服务器中的服务单元,具体不做限定。
请参阅图1,图1为本申请实施例提供的封装方法的流程示意图,包括:
101、获取第一js脚本。
本实施例中,封装装置可以获取第一js脚本,此处具体不限定获取第一js脚本的方式,例如可以通过接收用户的输入生成第一js脚本。
102、添加捕获异常代码至第一js脚本,得到第二js脚本。
本实施例中,封装装置可以用第一js脚本中捕获异常的trycatch方法将第一js脚本进行封装,具体的操作方案是将如下捕获异常代码添加至第一js脚本,得到第二js脚本:
code=“try{“+code+”}catch(e){console.log(e)}”,由此在第二js脚本运行过程中,捕获出现未知的异常,防止页面因异常而崩溃。
103、添加目标代码至第二js脚本,得到第三js脚本。
本实施例中,封装装置可以将目标代码代价至第二js脚本,得到第三js脚本,其中,目标代码用于指示获取第三js脚本对应的标准变成接口的范围。也就是说,可以通过在第二js脚本目标代码,也即在第二js脚本添加获取页面文档对象模型(Document ObjectModel,DOM)的方法,并限制获取到的页面dom范围,该目标代码如下:
code=“var$=function(){arguments.push(pageDom);return Zepto.apply(Zepto,arguments)}”+code
通过步骤103可以使第三js脚本调用zepto获取的dom元素时,获取的dom限制在pageDom下,从而避免不同页面出现元素标识重复时,获取的元素dom不准确的问题,其中,Zepto是一个移动端开发的第三方js脚本库,主要为开发者提供了移动端开发web页面的工具方法,pageDom是运行用户js脚本的子页面的dom对象,arguments为js脚本语言中,函数内部的一个获取函数参数的内置对象。
104、将第三js脚本放置于目标子执行函数。
本实施例中,封装装置将第三js脚本放在一个自执行函数内,具体的代码执行如下:
code=“(function(){“+code+”})()”;
由此利用了js的立即执行函数表达式(Immediately-Invoked FunctionExpression,IIFE)设计模式,为用户的js脚本提供了一个封闭的作用域环境,像沙盒模型一样为第三js脚本的运行提供了一个隔离环境,使得每个子页面的脚本互不影响,变量和方法不会出现冲突。其中,IIFE是一个在定义时就会立即执行的js函数。主要包含两部分。第一部分是包围在圆括号运算符()里的一个匿名函数,这个匿名函数拥有独立的词法作用域。这不仅避免了外界访问此IIFE中的变量,而且又不会污染全局作用域。第二部分再一次使用()创建了一个立即执行函数表达式,js引擎到此将直接执行函数。沙盒模型是指为程序提供一个封闭的运行空间,程序的活动范围限定在此封闭的空间中。
105、对放置于目标自执行函数后的第三js脚本进行封装,得到目标可执行函数。
本实施例中,封装装置可以将放置于目标自执行函数的第三js脚本封装成一个可执行的函数func,也即目标可执行函数,具体代码如下:
func=new Function(“return”+code);
由此,在调用并目标可执行函数func的过程中,不会新增任何html标签,对单页应用的页面结构不会产生的影响。
一个实施例中,封装装置接收用户的操作指令;
响应于操作指令,并根据操作指令运行所述目标可执行函数
本实施例中,在得到目标可执行函数之后,封装设备可以运行该目标可执行函数,具体的,接收用户的操作指令,并根据操作指令运行目标可执行函数。
一个实施例中,生成用户的操作指令的操作至少包括手势操作、滑动操作、点击操作以及声控操作中的一种,例如当用户进行点击操作时,封装装置可以接收到该点击操作,此时,该点击操作即生成用户的操作指令,也就是说,可以提前定义操作指令,例如提前定义滑动操作为生成用户的操作指令的操作(如左滑操作、右滑操作、上滑操作以及下滑操作等等),或者定义点击操作为生成用户的操作指令的操作(如单击操作或双击操作等等),或者定义手势操作为生成用户的操作指令的操作(如向左摆动手腕或手臂,向右摆动手腕或手臂,如四根手指收缩操作或者三根手指上滑操作等等),或者定义声控操作为生成用户的操作指令的操作(如收到运行目标可执行函数的声音),上述仅为举例说明,并不代表对生成用户的操作指令的操作进行限定。
在一个实施例中,封装装置通过捕获异常代码获取目标可执行函数运行过程中的异常信息;
基于异常信息输出异常日志。
本实施例中,封装装置在js脚本中添加了捕获异常代码,由此,可以在目标可执行函数运行的过程中,通过捕获异常代码获取目标可执行函数运行过程中的异常信息,并根据该异常信息输出异常日志,便于用户定位具体的异常信息。
一个实施例中,封装装置发出提示信息,提示信息用于指示目标可执行函数在运行过程中的异常信息。
本实施例中,当目标可执行函数在运行过程中出现异常时,可以输出异常日志的同事,发出提示信息,该提示信息,例如可以是文字,声音,图像等等,具体不做限定,另外可以直接显示,也可以发送至用户的终端设备,具体不做限定。
综上所述,可以看出,本申请提供的实施例中,添加捕获异常代码、标准变成接口的范围的目标代码,并防止与目标自执行函数,最后封装为可执行函数,由此,不但可以在目标自执行函数运行的过程中,捕获异常信息,同时限制了获取dom元素的pagedom范围,这样当用户在单页面应用的不同子页面中定义的js脚本出现了相同的变量命名和方法命名,不会导致用户在子页面间的js脚本出现冲突,由此不会造成运行异常的问题。
上面从封装方法的角度对本申请进行说明,下面从封装装置的角度对本申请进行说明。
请参阅图2,图2为本申请实施例提供的封装装置的虚拟结构示意图,包括:
获取单元201,用于获取第一js脚本;
添加单元202,用于添加捕获异常代码至所述第一js脚本,得到第二js脚本;
所述添加单元202,还用于添加目标代码至所述第二js脚本,得到第三js脚本,所述目标代码用于指示获取所述第三js脚本对应的标准编程接口的范围;
处理单元203,用于将所述第三js脚本放置于目标自执行函数;
封装单元204,用于对放置于所述目标自执行函数后的所述第三js脚本进行封装,得到目标可执行函数。
可选地,所述封装装置还包括:
接收单元205,用于接收所述用户的操作指令;
运行单206元,用于响应于所述操作指令,并根据所述操作指令运行所述目标可执行函数。
可选地,所述运行单元206还用于:
通过所述捕获异常代码获取所述目标可执行函数运行过程中的异常信息;
基于所述异常信息输出异常日志。
可选地,所述运行单元206还用于:
发出提示信息,所述提示信息用于指示所述目标可执行函数在运行过程中的所述异常信息。
综上所述,可以看出,本申请提供的实施例中,添加捕获异常代码、标准变成接口的范围的目标代码,并防止与目标自执行函数,最后封装为可执行函数,由此,不但可以在目标自执行函数运行的过程中,捕获异常信息,同时限制了获取dom元素的pagedom范围,这样当用户在单页面应用的不同子页面中定义的js脚本出现了相同的变量命名和方法命名,不会导致用户在子页面间的js脚本出现冲突,由此不会造成运行异常的问题。
本申请实施例还提供了另一种封装装置,如图3所示,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该封装装置可以为包括手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、POS(Point of Sales,销售终端)、车载电脑等任意终端设备,以封装装置为手机为例:
图3示出的是与本申请实施例提供的终端相关的手机的部分结构的框图。参考图3,手机包括:射频(Radio Frequency,RF)电路310、存储器320、输入单元330、显示单元340、传感器350、音频电路360、无线保真(wireless fidelity,WiFi)模块370、处理器380、以及电源390等部件。本领域技术人员可以理解,图3中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图3对手机的各个构成部件进行具体的介绍:
RF电路310可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器380处理;另外,将设计上行的数据发送给基站。通常,RF电路310包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,LNA)、双工器等。此外,RF电路310还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GlobalSystem of Mobile communication,GSM)、通用分组无线服务(General Packet RadioService,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器320可用于存储软件程序以及模块,处理器380通过运行存储在存储器320的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器320可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器320可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元330可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元330可包括触控面板331以及其他输入设备332。触控面板331,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板331上或在触控面板331附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板331可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器380,并能接收处理器380发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板331。除了触控面板331,输入单元330还可以包括其他输入设备332。具体地,其他输入设备332可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元340可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元340可包括显示面板341,可选的,可以采用液晶显示器(Liquid CrystalDisplay,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板341。进一步的,触控面板331可覆盖显示面板341,当触控面板331检测到在其上或附近的触摸操作后,传送给处理器380以确定触摸事件的类型,随后处理器380根据触摸事件的类型在显示面板341上提供相应的视觉输出。虽然在图3中,触控面板331与显示面板341是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板331与显示面板341集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器350,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板341的亮度,接近传感器可在手机移动到耳边时,关闭显示面板341和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路360、扬声器361,传声器362可提供用户与手机之间的音频接口。音频电路360可将接收到的音频数据转换后的电信号,传输到扬声器361,由扬声器361转换为声音信号输出;另一方面,传声器362将收集的声音信号转换为电信号,由音频电路360接收后转换为音频数据,再将音频数据输出处理器380处理后,经RF电路310以发送给比如另一手机,或者将音频数据输出至存储器320以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块370可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图3示出了WiFi模块370,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器380是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器320内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器380可包括一个或多个处理单元;优选的,处理器380可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器380中。
手机还包括给各个部件供电的电源390(比如电池),优选的,电源可以通过电源管理系统与处理器380逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本申请实施例中,处理器380还可以执行上述由封装装置所执行的操作。
图4是本申请实施例提供的一种服务器结构示意图,该服务器400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits,CPU)422(例如,一个或一个以上处理器)和存储器432,一个或一个以上存储应用程序442或数据444的存储介质430(例如一个或一个以上海量存储设备)。其中,存储器432和存储介质430可以是短暂存储或持久存储。存储在存储介质430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器422可以设置为与存储介质430通信,在服务器400上执行存储介质430中的一系列指令操作。
服务器400还可以包括一个或一个以上电源427,一个或一个以上有线或无线网络接口450,一个或一个以上输入输出接口458,和/或,一个或一个以上操作系统441,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由封装装置所执行的步骤可以基于该图4所示的服务器结构。
本申请实施例还提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现上述所述封装方法的步骤。
本申请实施例还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述所述封装方法的步骤。
本申请实施例还提供了一种终端设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,所述程序代码由所述处理器加载并执行以实现上述所述封装方法的步骤。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行上述所述封装方法的步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种封装方法,其特征在于,包括:
获取第一js脚本;
添加捕获异常代码至所述第一js脚本,得到第二js脚本;
添加目标代码至所述第二js脚本,得到第三js脚本,所述目标代码用于指示获取所述第三js脚本对应的标准编程接口的范围;
将所述第三js脚本放置于目标自执行函数;
对放置于所述目标自执行函数后的所述第三js脚本进行封装,得到目标可执行函数;
所述添加目标代码至所述第二js脚本,即通过所述目标代码在所述第二js脚本添加获取页面文档对象模型的方法,并限制获取到的页面dom范围。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收用户的操作指令;
响应于所述操作指令,并根据所述操作指令运行所述目标可执行函数。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
通过所述捕获异常代码获取所述目标可执行函数运行过程中的异常信息;
基于所述异常信息输出异常日志。
4.根据权利要求3中所述的方法,其特征在于,所述方法包括:
发出提示信息,所述提示信息用于指示所述目标可执行函数在运行过程中的所述异常信息。
5.一种封装装置,其特征在于,包括:
获取单元,用于获取第一js脚本;
添加单元,用于添加捕获异常代码至所述第一js脚本,得到第二js脚本;
所述添加单元,还用于添加目标代码至所述第二js脚本,得到第三js脚本,所述目标代码用于指示获取所述第三js脚本对应的标准编程接口的范围;
处理单元,用于将所述第三js脚本放置于目标自执行函数;
封装单元,用于对放置于所述目标自执行函数后的所述第三js脚本进行封装,得到目标可执行函数;
所述添加目标代码至所述第二js脚本,即通过所述目标代码在所述第二js脚本添加获取页面文档对象模型的方法,并限制获取到的页面dom范围。
6.根据权利要求5所述的装置,其特征在于,所述封装装置还包括:
接收单元,用于接收用户的操作指令;
运行单元,用于响应于所述操作指令,并根据所述操作指令运行所述目标可执行函数。
7.根据权利要求6所述的装置,其特征在于,所述运行单元还用于:
通过所述捕获异常代码获取所述目标可执行函数运行过程中的异常信息;
基于所述异常信息输出异常日志。
8.根据权利要求7中所述的装置,其特征在于,所述运行单元还用于:
发出提示信息,所述提示信息用于指示所述目标可执行函数在运行过程中的所述异常信息。
9.一种封装设备,应用于权限控制系统,其特征在于,包括:
至少一个连接的处理器、存储器和收发器;
所述存储器用于存储程序代码,所述程序代码由所述处理器加载并执行以实现上述权利要求1至4中任一项所述的封装方法的步骤。
10.一种计算机可读存储介质,其特征在于,包括指令,当所述指令在计算机上运行时,使得计算机执行上述权利要求1至4中任一项所述的封装方法的步骤。
CN202010380192.9A 2020-05-08 2020-05-08 一种封装方法及相关设备 Active CN111562910B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010380192.9A CN111562910B (zh) 2020-05-08 2020-05-08 一种封装方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010380192.9A CN111562910B (zh) 2020-05-08 2020-05-08 一种封装方法及相关设备

Publications (2)

Publication Number Publication Date
CN111562910A CN111562910A (zh) 2020-08-21
CN111562910B true CN111562910B (zh) 2023-06-02

Family

ID=72074597

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010380192.9A Active CN111562910B (zh) 2020-05-08 2020-05-08 一种封装方法及相关设备

Country Status (1)

Country Link
CN (1) CN111562910B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113064676B (zh) * 2020-12-29 2024-09-13 上海金融期货信息技术有限公司 基于js入口的前端运行时远程组件共享机制的方法
CN113221097A (zh) * 2021-05-10 2021-08-06 挂号网(杭州)科技有限公司 一种代码执行方法、装置、电子终端及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1506814A (zh) * 2002-12-10 2004-06-23 联想(北京)有限公司 用可扩展的标记性语言对应用程序界面进行描述的方法
CN101553769A (zh) * 2005-10-11 2009-10-07 努雅公司 用于跟踪并监控计算机应用的系统和方法
CN110597501A (zh) * 2019-08-09 2019-12-20 苏宁金融科技(南京)有限公司 一种基于强静态脚本语言的自然语言编程方法及装置
CN110688307A (zh) * 2019-09-09 2020-01-14 平安普惠企业管理有限公司 JavaScript代码检测方法、装置、设备和存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999063431A2 (en) * 1998-06-01 1999-12-09 Quality Consultants, Inc. Preprocessor for encapsulating software source scripts
CN102034289B (zh) * 2010-12-15 2013-03-27 广州致远电子股份有限公司 一种图形化可编程安防联动系统
CN103235745B (zh) * 2013-03-27 2016-08-10 华为技术有限公司 一种地址冲突检测方法及装置
CN109783342B (zh) * 2017-11-10 2022-03-29 华为技术有限公司 脚本调试方法、设备及计算机存储介质
CN108595656B (zh) * 2018-04-28 2022-02-18 宁波银行股份有限公司 一种数据的处理方法及系统
CN110175131A (zh) * 2019-04-29 2019-08-27 合肥移瑞通信技术有限公司 一种基于PyQt工具包的脚本管理方法及系统
CN110244954B (zh) * 2019-05-22 2022-12-09 深圳赛安特技术服务有限公司 一种应用程序的编译方法及设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1506814A (zh) * 2002-12-10 2004-06-23 联想(北京)有限公司 用可扩展的标记性语言对应用程序界面进行描述的方法
CN101553769A (zh) * 2005-10-11 2009-10-07 努雅公司 用于跟踪并监控计算机应用的系统和方法
CN110597501A (zh) * 2019-08-09 2019-12-20 苏宁金融科技(南京)有限公司 一种基于强静态脚本语言的自然语言编程方法及装置
CN110688307A (zh) * 2019-09-09 2020-01-14 平安普惠企业管理有限公司 JavaScript代码检测方法、装置、设备和存储介质

Also Published As

Publication number Publication date
CN111562910A (zh) 2020-08-21

Similar Documents

Publication Publication Date Title
US10182101B2 (en) Method, apparatus and system for sharing webpage
US9800609B2 (en) Method, device and system for detecting malware in a mobile terminal
CN108920220B (zh) 一种函数调用的方法、装置及终端
CN111580815B (zh) 一种页面元素的编辑方法及相关设备
CN106547844B (zh) 一种用户界面的处理方法和装置
CN107766358B (zh) 一种页面分享的方法及相关装置
CN110569078B (zh) 一种网页级程序的预加载方法和装置
US20150169874A1 (en) Method, device, and system for identifying script virus
US11063962B2 (en) Malicious URL detection method and apparatus, terminal, and computer storage medium
CN104133752B (zh) 操作平台的监控方法和装置
CN111562910B (zh) 一种封装方法及相关设备
CN108897533A (zh) 一种函数调用的方法、装置及终端
CN105740145A (zh) 定位控件中的元素的方法及装置
CN111966491B (zh) 统计占用内存的方法及终端设备
CN105740419A (zh) 获取网页中动态加载内容的方法及装置
CN109145598B (zh) 脚本文件的病毒检测方法、装置、终端及存储介质
CN108959062B (zh) 网页元素获取方法及装置
CN106709330B (zh) 记录文件执行行为的方法及装置
CN111177612B (zh) 一种页面登录鉴权的方法及相关装置
CN110032394B (zh) 一种无源码文件的分析方法、装置和存储介质
CN105528220B (zh) 加载动态共享对象的方法和装置
US10664436B2 (en) Application acceleration method and application acceleration device
CN112084104A (zh) 一种异常测试方法和装置
CN108595958B (zh) 一种用于实现跨进程注入的方法、装置及终端
CN113961380B (zh) 一种跨应用修复的方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant