CN106790276A - 一种基于浏览器协议的跨浏览器数据交互方法和装置 - Google Patents
一种基于浏览器协议的跨浏览器数据交互方法和装置 Download PDFInfo
- Publication number
- CN106790276A CN106790276A CN201710090347.3A CN201710090347A CN106790276A CN 106790276 A CN106790276 A CN 106790276A CN 201710090347 A CN201710090347 A CN 201710090347A CN 106790276 A CN106790276 A CN 106790276A
- Authority
- CN
- China
- Prior art keywords
- browser
- data
- cross
- javascript
- readjustment
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种基于浏览器协议的跨浏览器数据交互方法和装置,该方法包括:步骤1、所述用户终端浏览器根据浏览器协议利用JavaScript模块执行调用本地应用程序命令;步骤2、本地应用程序创建Webserver,进行本地模拟交互;步骤3、调用公共服务器的JavaScript脚本文件,动态添加JavaScript脚本文件,进行跨域数据发送;步骤4、数据发送完成后,在Webserver端控件设置回调函数,进一步载入回调指令进行数据回调;步骤5、回调完成后进行数据储存,删掉回调引用,对变量赋值,直接在回调中使用该变量实现数据返回。本发明实现了数据跨浏览器交互,提高了开发效率。
Description
技术领域
本发明涉及一种基于浏览器协议的跨浏览器数据交互方法和装置,属于互联网技术领域。
背景技术
URL Protocol协议又称浏览器协议,是浏览器通用的一种协议,通常被用于一些外部应用的调用,比如:迅雷下载、调用阿里旺旺或QQ进行客户服务等。由于浏览器协议只能是单向一次***互,只能一次性调用应用程序,且无返回值,调用后页面无法与外部应用进行交互,所以一直以来只是做一些简单的应用。
控件是对数据和方法的封装,拥有自己的属性和方法,属性是控件数据的简单访问者,方法则是控件的一些简单而可见的功能。由于web应用的多样性,很多应用要与***进行交互,例如:发卡器要跟USB通讯、安全支付需要扫描***环境等。这部分功能浏览器上是没有权限去完成的,必须使用控件的方式。目前浏览器是百家争鸣的时期,每种浏览器使用各自的开发语言进行控件开发。由于浏览器开发及语言方案不同,开发者不得不学习各种浏览器的开发语言,而且要分别调试,大大降低了开发效率。此外,不同浏览器运行环境不同,即使内核相同也需要分开进行打包安装,甚至部分浏览器要求进入插件商店进行审核,大大降低了发布效率。
发明内容
本发明目的在于解决浏览器使用不同开发语言进行控件开发,同一控件在不同浏览器上不能同时使用问题,提供一种基于浏览器协议的跨浏览器数据交互方法和装置。
现阶段,浏览器工具主要包括Trident内核、Gecko内核、WebKit内核、Presto内核四种类型浏览器,不同用户终端安装有相同或不同的浏览器工具,本发明解决上述技术问题的技术方案如下:一种基于浏览器协议的跨浏览器数据交互方法,所述方法包括:
步骤1、所述用户终端浏览器根据浏览器协议利用JavaScript模块执行调用本地应用程序命令;
步骤2、本地应用程序创建Webserver,通过JavaScript与Webserver进行本地模拟交互;
步骤3、调用公共服务器的JavaScript脚本文件,动态添加JavaScript脚本文件,进一步利用DOM中的JavaScript模块进行跨域数据发送,单次发送数据的大小不超过2KB;进一步使用Get类请求找到头文件;使用Create语句创建一个JavaScript对象;
步骤4、数据发送完成后,在Webserver端控件设置JavaScript回调函数,进一步载入JavaScript回调指令进行数据回调;进一步包括利用不可重入函数防止数据重入;
步骤5、回调完成后数据储存至JavaScript中,删掉回调引用,将JavaScript文件中的变量赋值,直接在回调中使用该变量实现数据返回。
一种基于浏览器协议的跨浏览器数据交互装置,包括:
应用调用模块,用于调用本地应用程序;
模拟交互模块,用于本地应用程序创建Webserver,并通过JavaScript进行本地模拟交互;
跨域数据发送模块,用于利用DOM中的JavaScript模块进行跨域数据发送;
回调模块、用于对返回数据进行回调。
进一步,包括数据重入禁止模块,用于防止数据重入。
进一步,包括数据取出模块,用于取出返回的数据变量。
进一步,跨域数据发送模块单次发送数据的大小不超过2KB。
进一步,该装置至少包括Trident内核、Gecko内核、WebKit内核、Presto内核类型浏览器中的一种。
本发明的有益效果是:无需针对不同浏览器开发不同控件,能够解决控件跨浏览器使用问题,实现数据跨浏览器交互,提高了开发效率。
附图说明
图1为基于浏览器协议的跨浏览器数据交互方法示意图;
图2为跨域数据传输部分代码举例;
图3为返回数据回调部分代码举例;
图4为基于浏览器协议的跨浏览器数据交互装置结构示意图;
图5为常见浏览器HTTP Get请求URL的最大长度列表。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
实施例1:
图1为本发明第一实施例中基于浏览器协议的跨浏览器数据交互方法示意图,一种可以实现跨浏览器使用的控件解决方案。
具体而言,一种基于浏览器协议的跨浏览器数据交互方法,包括:
步骤1、所述用户终端浏览器根据浏览器协议利用JavaScript模块执行调用本地应用程序命令;
步骤2、本地应用程序创建Webserver,通过JavaScript与Webserver进行本地模拟交互;
步骤3、调用公共服务器的JavaScript脚本文件,动态添加JavaScript脚本文件,进一步利用DOM中的JavaScript模块进行跨域数据发送,单次发送数据的大小不超过2KB;进一步使用Get类请求找到头文件;使用Create语句创建一个JavaScript对象;
步骤4、数据发送完成后,在Webserver端控件设置JavaScript回调函数,进一步载入JavaScript回调指令进行数据回调;进一步包括利用不可重入函数防止数据重入;
步骤5、回调完成后数据储存至JavaScript中,删掉回调引用,将JavaScript文件中的变量赋值,直接在回调中使用该变量实现数据返回。
本发明采用上述方案,可以实现JavaScript与Webserver进行本地模拟交互,通过DOM中的JavaScript模块,能够实现数据的本地和跨域传输,进一步借助回调函数进行数据回调,不可重入函数防止数据重入。
实施例2:
如图2所示,其中跨域数据传输涉及的代码字段举例如下:
“//找到文档头
var head=document.getElementsByTagName('head')[0];
//生成一个JS对象
var jscript=document.createElement('script');
jscript.type='text/javascript';
//发送数据
jscript.src="http://127.0.0.1:"+jlink_port+"/"+"发送的数据";
//***元素(兼容IE6必须insertBefore)
head.insertBefore(jscript,head.firstChild);”
实施例3:
如图3所示,其中数据回调与防止重入代码举例如下:
实施例:4:
如图4所示,与上述方法对应,本发明还提供一种基于浏览器协议的跨浏览器数据交互装置1,包括:
应用调用模块101,用于调用本地应用程序;
模拟交互模块102,用于本地应用程序创建Webserver,并通过JavaScript进行本地模拟交互;
跨域数据发送模块103,用于利用DOM中的JavaScript模块进行跨域数据发送;
回调模块105、用于对返回数据进行回调。
数据重入禁止模块104,用于防止数据重入。
数据取出模块106,用于取出返回的数据变量。
该装置进一步至少包括Trident内核、Gecko内核、WebKit内核、Presto内核类型浏览器中的一种。
实施例5:
如图5所示,常见浏览器HTTP Get请求URL的最大长度,其中:
IE6.0:URL最大长度2083个字符,超过最大长度后无法提交。
IE7.0:URL最大长度2083个字符,超过最大长度后仍然能提交,但是只能传过去2083个字符。
Firefox 3.0.3:URL最大长度7764个字符,超过最大长度后无法提交。
Opera 9.52:URL最大长度7648个字符,超过最大长度后无法提交。
Google Chrome 2.0.168:URL最大长度7713个字符,超过最大长度后无法提交。
由于使用的Get类请求,提交的数据受URL长度限制,当递交数据控制在2K以内,具体而言数据需控制在市面所用浏览器URL最大长度值最小的那一个范围内,从而满足控件数据跨浏览器交互的数据量。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于浏览器协议的跨浏览器数据交互方法,其特征在于,不同用户终端安装有相同或不同的浏览器工具,所述方法包括:
步骤1、所述用户终端浏览器根据浏览器协议利用JavaScript模块执行调用本地应用程序命令;
步骤2、本地应用程序创建Webserver,通过JavaScript与Webserver进行本地模拟交互;
步骤3、调用公共服务器的JavaScript脚本文件,动态添加JavaScript脚本文件,进一步利用DOM中的JavaScript模块进行跨域数据发送;
步骤4、数据发送完成后,在Webserver端控件设置JavaScript回调函数,进一步载入JavaScript回调指令进行数据回调;
步骤5、回调完成后数据储存至JavaScript中,删掉回调引用,将JavaScript文件中的变量赋值,直接在回调中使用该变量实现数据返回。
2.根据权利要求1所述的一种基于浏览器协议的跨浏览器数据交互方法,其特征在于,所述步骤3进一步包括使用Get类请求找到头文件;使用Create语句创建一个JavaScript对象。
3.根据权利要求1所述的一种基于浏览器协议的跨浏览器数据交互方法,其特征在于,所述步骤3中单次发送数据的大小不超过2KB。
4.根据权利要求1所述的一种基于浏览器协议的跨浏览器数据交互方法,其特征在于,所述步骤4中进一步包括利用不可重入函数防止数据重入。
5.根据权利要求1所述的一种基于浏览器协议的跨浏览器数据交互方法,其特征在于,所述浏览器工具至少为Trident内核、Gecko内核、WebKit内核、Presto内核类型浏览器的一种。
6.一种基于浏览器协议的跨浏览器数据交互装置,其特征在于,包括:
应用调用模块,用于调用本地应用程序;
模拟交互模块,用于本地应用程序创建Webserver,并通过JavaScript进行本地模拟交互;
跨域数据发送模块,用于利用DOM中的JavaScript模块进行跨域数据发送;
回调模块、用于对返回数据进行回调。
7.根据权利要求6所述的一种基于浏览器协议的跨浏览器数据交互装置,其特征在于,进一步包括数据重入禁止模块,用于防止数据重入。
8.根据权利要求6所述的一种基于浏览器协议的跨浏览器数据交互装置,其特征在于,进一步包括数据取出模块,用于取出返回的数据变量。
9.根据权利要求6所述的一种基于浏览器协议的跨浏览器数据交互装置,其特征在于,所述跨域数据发送模块单次发送数据的大小不超过2KB。
10.根据权利要求6所述的一种基于浏览器协议的跨浏览器数据交互装置,其特征在于,该装置进一步至少包括Trident内核、Gecko内核、WebKit内核、Presto内核类型浏览器中的一种。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710090347.3A CN106790276B (zh) | 2017-02-20 | 2017-02-20 | 一种基于浏览器协议的跨浏览器数据交互方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710090347.3A CN106790276B (zh) | 2017-02-20 | 2017-02-20 | 一种基于浏览器协议的跨浏览器数据交互方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106790276A true CN106790276A (zh) | 2017-05-31 |
CN106790276B CN106790276B (zh) | 2020-05-19 |
Family
ID=58958277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710090347.3A Active CN106790276B (zh) | 2017-02-20 | 2017-02-20 | 一种基于浏览器协议的跨浏览器数据交互方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106790276B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019153492A1 (zh) * | 2018-02-07 | 2019-08-15 | 平安科技(深圳)有限公司 | 实现web与原生功能交互的方法、电子装置及可读存储介质 |
CN111200744A (zh) * | 2018-11-19 | 2020-05-26 | Tcl集团股份有限公司 | 一种多媒体播放控制方法、装置及智能设备 |
CN111638909A (zh) * | 2020-05-20 | 2020-09-08 | 中国软件与技术服务股份有限公司 | 一种跨浏览器跨平台调用扫描设备的方法及电子装置 |
CN112099868A (zh) * | 2020-08-18 | 2020-12-18 | 北京思特奇信息技术股份有限公司 | 一种跨浏览器调用控件的方法和*** |
CN112379938A (zh) * | 2020-11-06 | 2021-02-19 | 福建亿榕信息技术有限公司 | 一种基于国产操作***的跨浏览器安全调用本地应用方法 |
CN116820431A (zh) * | 2023-08-30 | 2023-09-29 | 山东威尔数据股份有限公司 | 具有全功能Node.js的嵌入式应用开发及运行方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101075240A (zh) * | 2006-08-25 | 2007-11-21 | 腾讯科技(深圳)有限公司 | 跨域获取数据的方法和*** |
CN102129405A (zh) * | 2010-01-13 | 2011-07-20 | 微软公司 | 跨浏览器交互性测试 |
CN102156644A (zh) * | 2011-05-20 | 2011-08-17 | 广州中道电子科技有限公司 | 一种跨浏览器跨操作***的控制装置 |
WO2014025544A1 (en) * | 2012-08-09 | 2014-02-13 | Sweetlabs, Inc | Systems and methods for alert management |
CN106202537A (zh) * | 2016-07-26 | 2016-12-07 | 江苏神州信源***工程有限公司 | 一种实现跨浏览器前端与终端本地交互的方法 |
-
2017
- 2017-02-20 CN CN201710090347.3A patent/CN106790276B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101075240A (zh) * | 2006-08-25 | 2007-11-21 | 腾讯科技(深圳)有限公司 | 跨域获取数据的方法和*** |
CN102129405A (zh) * | 2010-01-13 | 2011-07-20 | 微软公司 | 跨浏览器交互性测试 |
CN102156644A (zh) * | 2011-05-20 | 2011-08-17 | 广州中道电子科技有限公司 | 一种跨浏览器跨操作***的控制装置 |
WO2014025544A1 (en) * | 2012-08-09 | 2014-02-13 | Sweetlabs, Inc | Systems and methods for alert management |
CN106202537A (zh) * | 2016-07-26 | 2016-12-07 | 江苏神州信源***工程有限公司 | 一种实现跨浏览器前端与终端本地交互的方法 |
Non-Patent Citations (2)
Title |
---|
小小小小小亮: "《javascript和jQuery中的AJAX技术详解》", 《脚本之家》 * |
陈腊梅,李为,程振林,张晓力: "《AJAX跨域访问的研究与应用》", 《计算机工程与设计》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019153492A1 (zh) * | 2018-02-07 | 2019-08-15 | 平安科技(深圳)有限公司 | 实现web与原生功能交互的方法、电子装置及可读存储介质 |
CN111200744A (zh) * | 2018-11-19 | 2020-05-26 | Tcl集团股份有限公司 | 一种多媒体播放控制方法、装置及智能设备 |
CN111200744B (zh) * | 2018-11-19 | 2021-05-25 | Tcl科技集团股份有限公司 | 一种多媒体播放控制方法、装置及智能设备 |
CN111638909A (zh) * | 2020-05-20 | 2020-09-08 | 中国软件与技术服务股份有限公司 | 一种跨浏览器跨平台调用扫描设备的方法及电子装置 |
CN112099868A (zh) * | 2020-08-18 | 2020-12-18 | 北京思特奇信息技术股份有限公司 | 一种跨浏览器调用控件的方法和*** |
CN112379938A (zh) * | 2020-11-06 | 2021-02-19 | 福建亿榕信息技术有限公司 | 一种基于国产操作***的跨浏览器安全调用本地应用方法 |
CN116820431A (zh) * | 2023-08-30 | 2023-09-29 | 山东威尔数据股份有限公司 | 具有全功能Node.js的嵌入式应用开发及运行方法 |
CN116820431B (zh) * | 2023-08-30 | 2023-11-14 | 山东威尔数据股份有限公司 | 具有全功能Node.js的嵌入式应用开发及运行方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106790276B (zh) | 2020-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106790276A (zh) | 一种基于浏览器协议的跨浏览器数据交互方法和装置 | |
US20210133388A1 (en) | Webpage rendering method, device, electronic apparatus and storage medium | |
US7865544B2 (en) | Method and system for providing XML-based asynchronous and interactive feeds for web applications | |
US7870482B2 (en) | Web browser extension for simplified utilization of web services | |
US8719421B2 (en) | Cross domain interaction of a web application | |
US20060248166A1 (en) | System and method for client side rendering of a web page | |
CA2839006C (en) | Methods for making ajax web applications bookmarkable and crawlable and devices thereof | |
CN103873918B (zh) | 图片处理方法、装置及终端 | |
US10120847B2 (en) | Methods for transforming requests for web content and devices thereof | |
US8914774B1 (en) | System and method for tagging code to determine where the code runs | |
CN110941950B (zh) | 接口文档的生成方法、装置、服务器及存储介质 | |
US9143378B2 (en) | Rendering components within different browser environments | |
US9971636B2 (en) | Methods for implementing web services and devices thereof | |
CN108629032A (zh) | 一种基于延时加载的页面快速响应方法及装置 | |
US8874654B2 (en) | System for processing requests to portlets | |
US20040103370A1 (en) | System and method for rendering MFS XML documents for display | |
CN113467775A (zh) | 一种生成页面的方法和装置 | |
CN113382083A (zh) | 一种网页截图方法和装置 | |
CN113076294A (zh) | 一种信息分享方法和装置 | |
CN109460227A (zh) | 一种网站前端的开发方法、装置、设备及介质 | |
CN103885988B (zh) | 输出内容的方法及装置、内容输出*** | |
CN103425473A (zh) | 一种开放式微博的实现方法和*** | |
CN102314467A (zh) | 一种实现网页同步浏览的方法 | |
CN114115897A (zh) | 基于nodejs脚本动态生成项目本地可执行文件的方法 | |
WO2015165072A1 (en) | Translation for web services |
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 |