好消息!软航文档控件(NTKO WebOffice)在Chrome 133版本上提示扩展已停用的解决方案

        软航文档控件现有版本依赖Manifest V2扩展技术支持才能正常运行,然而这个扩展技术到2025年6月在Chrome高版本上就彻底不支持了,现在Chrome 133开始的版本已经开始弹出警告,必须手工开启扩展支持才能正常运行。那么如何解决这个技术难题呢?

        PluginOK中间件作为一个实现浏览器与本地程序之间进行双向调用的低成本、强兼容、安全可控、轻量级、易集成、可扩展、跨浏览器的原生小程序系统,解决起来毫无压力,可在线体验。步骤如下:

1、首先下载体验软件包:安装包->http://local.zorrosoft.com/Files/PluginOKNet.exe 绿色版-> http://local.zorrosoft.com/Files/WRL.zip 绿色版下载后解压运行installwrl.bat即可完成安装。

2、打开体验网站:http://local.zorrosoft.com/ocxfull.html 或者 http://local.zorrosoft.com/ocxframe.html,前者实现整个网页区嵌入,后者实现网页局部区域嵌入显示,然后点击连接,提示连接成功说明第一步安装的中间件服务启动正常。然后在发送按钮上面的输入框中替换内容如下:

A、ocxfull.html完整嵌入的填写以下内容:

{"req":"Wrl_AppletStart","rid":99,"para":{"Type":"0","Title":"ActiveX网页小程序","NodeName":"OcxWebApplet","PID":"OcxWebApplet","Flag":72,"Left":0,"Top":0,"Width":0,"Height":0,"IframeX":0,"IframeY":0,"Option":"0","Zoom":100,"ScrollTop":0,"Web": {"DataPath":"c:/OfficeDoc","ClassID":"{A39F1330-3322-4A1D-9BF0-0BA2BB90E970}"},"Open":"http://local.zorrosoft.com/Files/test.doc"}}

B、ocxframe.html 局部嵌入的填写以下内容:

{"req":"Wrl_AppletStart","rid":8,"para":{"Type":"0","Title":"ActiveX网页小程序","NodeName":"OcxWebApplet","PID":"OcxWebApplet","Flag":66,"Left":20,"Top":20,"Width":480,"Height":320,"IframeX":0,"IframeY":210,"BarW":0,"BarH":0,"Option":"0","Web": {"DataPath":"c:/OfficeDoc","ClassID":"{A39F1330-3322-4A1D-9BF0-0BA2BB90E970}"},"Open":"http://local.zorrosoft.com/Files/test.doc"}}

发送内容替换完成后,直接点击发送,正常情况下,您可以分别看到如下画面:

                                                                    完整嵌入效果

      局部嵌入效果,点击适配显示切换,也可以自动适配网页区显示大小聪明右侧和底部显示。

对于控件提供的开发接口,也提供了自动化的接口请求支持:

11)、请求获取属性值
Name 指定属性名称 如遇到取子接口的,名称增加子接口的名称,支持多级,比如获取VLC播放列表的数量名称用playlist.itemCount 下同
{"req":"OCX_GetProperty","rid":11,"para":{"Name":"src"}}
{"req":"OCX_GetProperty","rid":11,"para":{"Name":"volume"}}
{"req":"OCX_GetProperty","rid":11,"para":{"Name":"Toolbar"}}
{"req":"OCX_GetProperty","rid":11,"para":{"Name":"playlist.itemCount"}}
{"req":"OCX_GetProperty","rid":11,"para":{"Name":"input.rate"}}
{"req":"OCX_PutProperty","rid":11,"para":{"Name":"video.logo.opacity"}}
返回: {"ret":0,"rid":11,"data":{"Ret":0,"Val":""}}
如果返回的是自动化接口,Val的值类似这样的:playlist={CatchDispatch},需要继续调用这个自动化接口的属性或方法时,接下来的请求里指定参数{CatchDispatch},否则默认调用控件主接口的,下同

12)、请求设置属性
Name 指定属性名称 如遇到设置子接口的,名称增加子接口的名称,支持多级
Val 指定属性值,字符串用""包含,字符串中包含\或"等字符时,需要加转义符\,数值型不用"",BOOL类型设置真时数值是-1
当需要释放缓存的自动化接口时,Name可以指定为类似这样的playlist={CatchDispatch},Val设置为0或空
{"req":"OCX_PutProperty","rid":12,"para":{"Name":"src","Val":"d:/zorro/test.pdf"}}
{"req":"OCX_PutProperty","rid":12,"para":{"Name":"Toolbar","Val":-1}}
{"req":"OCX_PutProperty","rid":12,"para":{"Name":"Visible","Val":-1}}
{"req":"OCX_PutProperty","rid":12,"para":{"Name":"volume","Val":0}}
{"req":"OCX_PutProperty","rid":12,"para":{"Name":"input.rate","Val":2}}
{"req":"OCX_PutProperty","rid":12,"para":{"Name":"video.logo.opacity","Val":50}}
{"req":"OCX_PutProperty","rid":12,"para":{"Name":"playlist={CatchDispatch}","Val"0}}
返回: {"ret":0,"rid":12,"data":{"Ret":0}}

13)、请求无传入参数方法
Name 指定方法名称 如遇到调用子接口的,名称增加子接口的名称,支持多级,比如调用VLC播放列表播放方法名称用playlist.play 下同
DID 也可以指定方法序号
{"req":"OCX_Invoke0","rid":13,"para":{"Name":"gotoFirstPage"}}
{"req":"OCX_Invoke0","rid":13,"para":{"Name":"gotoNextPage"}}
{"req":"OCX_Invoke0","rid":13,"para":{"Name":"playlist.play"}}
返回: {"ret":0,"rid":13,"data":{"Ret":0,"Val":""}}

14)、请求只传入1个参数方法
Name 指定方法名称 如遇到调用子接口的,名称增加子接口的名称,支持多级,比如调用VLC播放列表播放方法名称用playlist.add 下同
DID 也可以指定方法序号
Para1 对应参数值 ,字符串用""包含,字符串中包含\或"等字符时,需要加转义符\,数值型不用"";参数如果需要再次调用自动化接口获取的值,可以这样传参{DispatchPara}=playlist.itemCount 下同
{"req":"OCX_Invoke1","rid":14,"para":{"Name":"LoadFile","Para1":"d:/zorro/test.pdf"}}
{"req":"OCX_Invoke1","rid":14,"para":{"Name":"setShowToolbar","Para1":0}}
{"req":"OCX_Invoke1","rid":14,"para":{"Name":"video.logo.file","Para1":"D:\\Zorro\\test.png"}}
{"req":"OCX_Invoke1","rid":14,"para":{"Name":"playlist.add","Para1":"http://www.zorrosoft.com/Files/PluginOKBrowserApplet.mp4"}}
返回: {"ret":0,"rid":14,"data":{"Ret":0,"Val":""}}

15)、请求只传入2个参数方法
Name 指定方法名称
DID 也可以指定方法序号
Para1和Para2分别对应参数1和2数值 如果需要传缓存的自动化接口,可以这样传参{CatchDispatch}=playlist
{"req":"OCX_Invoke2","rid":15,"para":{"Name":"printPages","Para1":1,"Para2":2}}
返回: {"ret":0,"rid":15,"data":{"Ret":0,"Val":""}}

16)、请求只传入3个参数方法
Name 指定方法名称
DID 也可以指定方法序号
Para1、Para2、Para3分别对应参数1、2和3的数值
{"req":"OCX_Invoke3","rid":16,"para":{"Name":"printPagesFit","Para1":"1","Para2":"2","Para3":"0"}}
返回: {"ret":0,"rid":16,"data":{"Ret":0,"Val":""}}

17)、请求只传入4个参数方法
Name 指定方法名称
DID 也可以指定方法序号
Para1、Para2、Para3、Para4分别对应参数1、2、3和4的数值
{"req":"OCX_Invoke4","rid":17,"para":{"Name":"setCurrentHighlight","Para1":255,"Para2":0,"Para3":255,"Para4":0}}
返回: {"ret":0,"rid":17,"data":{"Ret":0,"Val":""}}

18)、请求只传入5个参数方法
Name 指定方法名称
DID 也可以指定方法序号
Para1、Para2、Para3、Para4、Para5分别对应参数1、2、3、4和5的数值
福昕OFD版式办公套件OCX 调用打开文档
{"req":"OCX_Invoke5","rid":18,"para":{"Name":"openFile","Para1":"d:/zorro/test.pdf","Para2":"0","Para3":"","Para4":"","Para5":""}}
返回: {"ret":0,"rid":18,"data":{"Ret":0,"Val":""}}

19)、请求只传入6个参数方法
Name 指定方法名称
DID 也可以指定方法序号
Para1、Para2、Para3、Para4、Para5、Para6分别对应参数1、2、3、4、5和6的数值
{"req":"OCX_Invoke6","rid":19,"para":{"Name":"","Para1":"","Para2":"","Para3":"","Para4":"","Para5":"","Para6":""}}
返回: {"ret":0,"rid":19,"data":{"Ret":0,"Val":""}}
支持更多参数的接口也有,就不一一展示了。

PluginOK中间件也不仅仅支持NTKO WebOffice文档控件,金格iWebOffice、OfficeCtrl、微软DSOFramer、点聚等文档控件也毫无压力。

最最重要的是,基于PluginOK中间件实现的PageHiOffice文档控件,可以全面碾压以上文档控件对Office、金山WPS及永中Office的兼容性,而且还额外提供了完整嵌入模式,功能更全,完全不依赖浏览器提供的任何插件或扩展接口,不用再担心浏览器的升级导致技术方案失效引发的系统停摆风险!在线体验可以戳这里-> VUE2:http://local.zorrosoft.com/office VUE3:http://local.zorrosoft.com/office3 JS:http://local.zorrosoft.com/officeJS

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/75605.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

字典树与01trie

字典树简介 当我们通过字典查一个字或单词的时候,我们会通过前缀或关键字的来快速定位一个字的位置,进行快速查找。 字典树就是类似字典中索引表的一种数据结构,能够帮助我们快速定位一个字符串的位置。 字典树是一种存储字符串的数据结构…

二十五、实战开发 uni-app x 项目(仿京东)- 前后端轮播图

定义了一个名为 Swiper 的Java类,用于表示一个轮播图实体。它使用了 Jakarta Persistence API (JPA) 来映射数据库表,并使用了 Lombok 库来简化代码。以下是对代码的详细讲解: 1. 包声明 package com.jd.jdmall.model; 这行代码声明了该类所在的包路径为 com.jd.jdmall.mode…

游戏摇杆开发:利用 Windows API 实现摇杆输入捕获

在现代游戏开发中,游戏摇杆(Joystick)作为一种重要的输入设备,能够为玩家提供更加沉浸式的游戏体验。Windows 操作系统提供了一系列 API 函数,允许开发者轻松地捕获和处理游戏摇杆的输入。本文将介绍如何使用 Windows …

Ceph集群2025(Squid版)快速对接K8S cephFS文件存储

ceph的块存储太简单了。所以不做演示 查看集群 创建一个 CephFS 文件系统 # ceph fs volume create cephfs01 需要创建一个子卷# ceph fs subvolume create cephfs01 my-subvol -----------------#以下全部自动创建好 # ceph fs ls name: cephfs01, metadata pool: c…

Python中数据结构元组详解

在Python中,元组(Tuple)是一种不可变的序列类型,常用于存储一组有序的数据。与列表(List)不同,元组一旦创建,其内容无法修改。本文将详细介绍元组的基本操作、常见运算、内置函数以及…

游戏引擎学习第183天

回顾和今天的计划 我对接下来的进展感到非常兴奋。虽然我们可能会遇到一些问题,但昨天我们差不多完成了将所有内容迁移到新的日志系统的工作,我们正在把一些内容整合进来,甚至是之前通过不同方式记录时间戳的旧平台层部分,现在也…

Spring 如何处理循环依赖

在 Spring 框架里,循环依赖指的是多个 Bean 之间相互依赖,从而形成一个闭环。例如,Bean A 依赖 Bean B,而 Bean B 又依赖 Bean A。Spring 主要通过三级缓存机制来处理循环依赖,下面详细介绍相关内容。 1. 三级缓存的定…

Android开发layer-list

Android开发layer-list 它的用处可以在drawable上进行多图拼接&#xff0c;比如启动页&#xff0c;不想图片被拉伸就这么做。还有做某些线突出来。 示例代码&#xff1a; <?xml version"1.0" encoding"utf-8"?> <layer-list xmlns:android&q…

手机测试,工作中学习

要学习各种机型的截图方式、开发模式在哪。 荣耀机型&#xff1a;截图&#xff1a;关节快速敲两下。开发者模式在“系统和更新”里。 1.出现缺陷&#xff0c;需要获取日志。 学习adb生成日志&#xff1a;当测试中出现缺陷的&#xff0c;使用adb logcat -d > d:/log.txt …

OBS虚拟背景深度解析:无需绿幕也能打造专业教学视频(附插件对比)

想要录制教学视频却苦于背景杂乱&#xff1f;本文将手把手教你用OBS实现专业级虚拟背景效果&#xff0c;无需绿幕也能轻松营造沉浸式教学场景。文末附6个提升画面质感的免费背景资源&#xff01; 一、虚拟背景的核心价值&#xff1a;从「教师宿舍」到「虚拟讲堂」的蜕变 我们调…

零基础搭建智能法律知识库!腾讯云HAI实战教程

为什么需要法律知识库&#xff1f; 想象一下&#xff0c;你的所有法律文件都在手边&#xff0c;随时可以搜索和分析。这就是法律知识库的魅力所在。对于法律专业人士、处理大量法律文档的企业&#xff0c;甚至是希望了解法律事项的普通人来说&#xff0c;法律知识库都是一个不…

Rust从入门到精通之进阶篇:19.Rust 生态系统

Rust 生态系统 Rust 拥有一个丰富而活跃的生态系统&#xff0c;提供了各种库和框架来支持不同领域的开发。在本章中&#xff0c;我们将探索 Rust 生态系统中的主要组件&#xff0c;了解常用的库和工具&#xff0c;以及如何在项目中有效地使用它们。 Rust 包管理&#xff1a;C…

前端面试:如何去衡量用户操作过程中否卡顿?

衡量用户在应用中的操作是否卡顿是前端开发中的一个关键任务&#xff0c;涉及用户体验的各个方面。以下是一些常用的方法和工具&#xff0c;可以帮助你有效地评估用户操作中的卡顿情况&#xff1a; 1. 使用性能分析工具 浏览器开发者工具&#xff1a;大多数现代浏览器&#xf…

Python技术栈与数据可视化创意实践详解(三)

Python在数据可视化领域凭借丰富的库和灵活的生态系统&#xff0c;能够实现从基础图表到复杂交互式可视化的全场景覆盖。以下从技术选型、创意实现到实战优化进行系统化解析&#xff0c;并提供可直接落地的代码示例。 一、Python数据可视化技术栈 1. 基础与统计可视化 Matplotl…

订票系统|基于Java+vue的火车票订票系统(源码+数据库+文档)

订票系统目录 基于Springbootvue的火车票订票系统 一、前言 二、系统设计 三、系统功能设计 1会员信息管理 2 车次信息管理 3订票订单管理 4留言板管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍…

Snowflake 算法的实现

snowflake(雪花算法)是一个开源的分布式 ID 生成算法&#xff0c;结果是一个 long 型的 ID。snowflake 算法将 64bit 划分为多段&#xff0c;分开来标识机器、时间等信息&#xff0c;具体组成结构如下图所示&#xff1a; snowflake 算法的核心思想是使用 41bit 作为毫秒数&…

C 语言中, scanf 函数在哪些情况下会结束输入读取:

在 C 语言中&#xff0c; scanf 函数在以下几种情况下会结束输入读取&#xff1a; &#xff1a; 1. 遇到指定格式匹配失败&#xff1a; scanf 按照格式字符串要求读取输入。当输入数据格式与格式字符串不匹配时&#xff0c;就会结束读取。例如 scanf(“%d”, &num) 要求输…

括号合法题

一、括号合法题 2116. 判断一个括号字符串是否有效 //采用从左往右和从右往左遍历的贪心算法&#xff0c;分别保证前缀合法&#xff0c;后缀合法。public boolean canBeValid(String s, String locked) {int ns.length();if (n%21) return false;int num0;// 从左到右扫描&…

图生生AI商品图:一键更换商品,保留原背景

图生生AI商品图工具&#xff0c;推出 “更换商品”功能&#xff0c;只需上传一张参考图和自己的商品图&#xff0c;AI自动完成商品替换&#xff0c;保留原背景&#xff0c;3秒生成专业级电商图&#xff01;无需PS技能&#xff0c;无需复杂操作&#xff0c;真正实现 “一键换商品…

[7-01-03].SpringBoot3集成MinIo

MinIO学习大纲 一、Spingboot整合MinIo 第1步&#xff1a;搭建SpringBoot项目&#xff1a; 第2步&#xff1a;引入minio依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi&q…