当前位置: 首页 > news >正文

allWebPlugin中间件自定义alert、confirm及prompt使用

allWebPlugin简介

      allWebPlugin中间件是一款为用户提供安全、可靠、便捷的浏览器插件服务的中间件产品致力于将浏览器插件重新应用到所有浏览器。它将现有ActiveX控件直接嵌入浏览器,实现插件加载、界面显示、接口调用、事件回调等。支持Chrome、Firefox、Edge、360等浏览器,接口调用友好、集成方便。为用户提供“信息化系统 + allWebPlugin + 插件 + 浏览器”的解决方案。

        在Web开发时,经常需要使用alert、confirm及prompt对话框与用户交互。提示或获取用户输入。allWebPlugin中间件为了满足上述需要,设计了一套自定义的对话框,供用户使用。

下载地址

链接:百度网盘 请输入提取码 
提取码:z3q0 

如下图所示,下载allWebPlugin_x86_v2.0.0.20_stable_20240921.zip安装包。

安装包截图

​​

使用步骤

        第一步:在使用createContainer创建插件容器时,设置是否使用浏览器插件。在使用本接口之前,必须先给大家介绍一下createContainer接口。具体如下:

createContainer方法
功能说明:创建插件容器。
参数说明:
canvas: 网页canvas画布元素
progID:  字符串  插件容器标识
license: 字符串  授权信息
bFixSize: 布尔  是否固定大小。注意:百分比自适应时,为false,不显示插件截图。本参数自v2.0.0.16起支持
blUsePluginUI: 布尔  是否使用插件容器对话框。注意:false时,使用浏览器自带提示框,提示框显示时会隐藏插件容器;true时,使用插件容器对话框,不会隐藏插件容器窗口。自v2.0.0.20起支持
返回值:
类型:PluginHostCnt对象
当返回值不为null时表示成功,其它表示失败。

通过接口介绍可以知道,blUsePluginUI为false时,使用浏览器自带提示框,提示框显示时会隐藏插件容器;blUsePluginUI为true时,使用插件容器自定义对话框,不会隐藏插件容器窗口。为了能使用插件自定义对话框,我们这里将blUsePluginUI设置为true(默认值为true)。具体代码如下:

if(hostCnt.createContainer(canvas,"PluginContainer",license,false,true) == true)
{	//hostCnt.UI.ForceShowUI(false);//创建时隐藏插件,需要调用这句,隐藏插件
}

第二步:使用alert、confirm及prompt接口调用浏览器插件自定义对话框。下面将使用示例分别介绍。

alert示例

如下图,响应插件创建事件,并提示。

function OnCreated(){alert("OnCreated 事件");
}

效果如图所示:

alert自定义提示框

confirm示例 

如下图,关闭时提示是否关闭文档。

function Close()
{if(confirm("是否关闭文档?")){allWebOfficeAx.Close_Asyn(0).then(function(data){ShowError(data);});}
}

效果下图所示

confirm效果展示

 prompt示例

如下图获取用户输入的内容替换选定区域内容。

function WebSetWordContent(){var mText=window.prompt("请输入内容:","测试内容");if (mText==null){return (false);}else{WebOffice.WebObject.ActiveDocument().Application().Selection().Range().Text = mText+"\n";}}
prompt效果

作用及意义

        保留了原滋原味的alert、confirm及prompt接口调用习惯,同时有避免了浏览器自带对话框可能存在图层遮挡的问题。

        注意,若要使用浏览器自带的对话框,请在创建插件容器时,将blUsePluginUI设置成false。这样的话,就会使用浏览器自带的对话框,插件容器窗口将在对话框显示时,自动隐藏,关闭对话框时,自动显示。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 密码学基础--ECDSA算法入门
  • C++之深拷贝和浅拷贝*
  • (PySpark)RDD实验实战——求商品销量排行
  • 2024年华为杯-研赛F题论文问题一二讲解+代码分享
  • LabVIEW多语言支持优化
  • 基于python上门维修预约服务数据分析系统
  • 【Linux课程学习】make/Makefile:Linux项目自动化构建工具
  • 英语六级-学习
  • redis单点、主从、哨兵、集群的不同
  • WPF DataGrid 赋值与修改
  • 生活小助手系统小程序的设计
  • 灵当CRM系统index.php存在SQL注入漏洞
  • sicp每日一题[2.20]
  • MySQL基础基础篇 - SQL
  • 数据结构:内部排序
  • [译]Python中的类属性与实例属性的区别
  • 【Linux系统编程】快速查找errno错误码信息
  • 【RocksDB】TransactionDB源码分析
  • angular2开源库收集
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • java 多线程基础, 我觉得还是有必要看看的
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • Java精华积累:初学者都应该搞懂的问题
  • Java-详解HashMap
  • jdbc就是这么简单
  • jquery cookie
  • magento 货币换算
  • React16时代,该用什么姿势写 React ?
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 一起参Ember.js讨论、问答社区。
  • 阿里云重庆大学大数据训练营落地分享
  • 回归生活:清理微信公众号
  • ​Java基础复习笔记 第16章:网络编程
  • ​ssh免密码登录设置及问题总结
  • ​人工智能书单(数学基础篇)
  • # Redis 入门到精通(八)-- 服务器配置-redis.conf配置与高级数据类型
  • #Z0458. 树的中心2
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • $ git push -u origin master 推送到远程库出错
  • $LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (19)夹钳(用于送货)
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (六)激光线扫描-三维重建
  • (南京观海微电子)——I3C协议介绍
  • (篇九)MySQL常用内置函数
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (三十)Flask之wtforms库【剖析源码上篇】
  • (四)stm32之通信协议
  • (新)网络工程师考点串讲与真题详解
  • .bat批处理出现中文乱码的情况