onlyoffice连接器(connector)开发使用精讲 二次开发指南 深入开发【二】

张开发
2026/4/10 16:32:03 15 分钟阅读

分享文章

onlyoffice连接器(connector)开发使用精讲 二次开发指南 深入开发【二】
前言这篇教程开始全部为进阶版使用你需要先熟悉使用最基础的连接器教程如果你没有正常接入请参考教程【一】onlyoffice连接器(connector)开发使用精讲 二次开发 深入开发【一】_onlyoffice 连接器-CSDN博客该教程为word的【二次开发高级功能】使用实例版本由【曹瑞】维护无商业风险。同时会附带有demo以及文档说明。// 引用自http://www.caoruisoft.com/#/onlyoffice_doc/main script srchttp://47.94.91.67:10100/web-apps/apps/api/documents/api.js/script曹瑞onlyoffice高级二开版本http://www.caoruisoft.com/#/onlyoffice_doc/main一、表单操作表单操作用于实现word与form的双向绑定过程比如合同、各类型文档使用only(左边)form(右边)结构进行展示实现同步操作可以边修改表单边更新合同也可以边修改合同边更新表单如图【图1】使用合同模板发起【图2】接入左右联动。文档http://47.94.91.67/#/onlyoffice_doc/demo【图1】【图2】onlyoffice操作双向的代码API【节选】实例可以再我的文档中找到代码如下connector.executeMethod( SetFormValue, [1775, 输入一段文字], null ); connector.executeMethod( GetFormValue, [1775], function (value) { console.log(value); } );表单操作是未来所有业务级别系统必然要走的一条路所见即所得实时同步更新这个也是开发者需要学习的一个做产品的思维。上面只是一个简单的展示一整套功能其实代码量很大从模板管理、模板动态设计、动态字段绑定、模板层转发、UIE抽取、AI风险校对、常规风险校对等等是一个完全的体系这一整套如果后面有时间我尝试重新用only做一个快速接入套件吧。二、事件此次增加了3个事件作为基础版本功能1、文档内部点击批注监听2、取消点击批注监听3、点击文字监听1、文档内部点击批注监听2、取消点击批注监听这两个功能是用监听实现当前选中或者是否选中批注。当然还有其他的API可以直接实现这里不做展示。文档http://47.94.91.67/#/onlyoffice_doc/demovar currentComment null; // 文档内部点击批注监听 connector.attachEvent( onInnerClickComment, function(data){ console.log(data); currentComment data.id; } ); // 取消选中监听 connector.attachEvent( onClickCancelComment, function(){ console.log(取消选中批注); currentComment null; } );3、是否点击文字监听该功能需求是希望点击文档空白时候外部form有动作点击文字时候保持不变。实际上就是根据点击动作做自己的业务逻辑。文档http://47.94.91.67/#/onlyoffice_doc/democonnector.attachEvent( onClickText, function(data){ console.log(data.isText); } );三、ApiRangerange对象是office原生的概念这个需要开发者自己看懂。对于range的功能其实应该还有很多很多可以做官方放出来的功能远远不够。后续逐步开发吧。ScrollTo实现文档滚动到定点位置。range对象很多时候都要用到。paragraph、search、控件、组件等所有包含文字对象的地方都要用到所以【滚动位置】就很有必要了。文档http://47.94.91.67/#/onlyoffice_doc/democonnector.callCommand(function () { var oDocument Api.GetDocument(); var oRange oDocument.GetRangeBySelect(); oRange.ScrollTo(); }, function (data) {});四、ApiDocument文档对象此次初步先接入3个api1、获取当前文档协作用户2强制保存3选中左侧标题树1、获取当前文档协作用户这个需要开发者自己先实现文档协作也就是config-key相同user不同打开两个页面就能看到效果。如【图3】。文档http://47.94.91.67/#/onlyoffice_doc/demo图3connector.callCommand(function () { var oDocument Api.GetDocument(); console.log(oDocument.GetOnlineUser()); }, function (data) {});2强制保存这个用来处理API操作过文档后比如range.AddText(xxxxx)后调用Api.Save()接口是没有效果的或者说word文档是用wps创建调用Api.Save()没有效果的情况。文档http://47.94.91.67/#/onlyoffice_doc/democonnector.callCommand(function () { var oDocument Api.GetDocument(); oDocument.forceSave2(); }, function (data) {});3选中左侧标题树这个其实就是文档结构树了用API来选中标题和所属内容。现在需要先点开标题树调用API才有效果。如【图4】后面得闲的话连同自动打开标题动作一起再完善一下吧。文档http://47.94.91.67/#/onlyoffice_doc/demo图4/** * 左侧【标题】导航点开才有效果 */ connector.callCommand(function () { var oDocument Api.GetDocument(); oDocument.SelectTitleItem(1); }, function (data) {});五、作者

更多文章