事件部分允许更改与事件有关的所有功能。
事件消息将在浏览器的 DevTools 控制台中提供。
onAppReady - 当应用程序加载到浏览器时调用的函数。
var onAppReady = function () { console.log("ONLYOFFICE Document Editor is ready"); }; var docEditor = new DocsAPI.DocEditor("placeholder", { "events": { "onAppReady": onAppReady, ... }, ... });
onCollaborativeChanges - 当文档被其他用户在 严格 的共同编辑模式下共同编辑时调用的函数。
var onCollaborativeChanges = function () { console.log("The document changed by collaborative user"); }; var docEditor = new DocsAPI.DocEditor("placeholder", { "events": { "onCollaborativeChanges": onCollaborativeChanges, ... }, ... });
onDocumentReady - 当文档加载到文档编辑器时调用的函数。
var onDocumentReady = function () { console.log("Document is loaded"); }; var docEditor = new DocsAPI.DocEditor("placeholder", { "events": { "onDocumentReady": onDocumentReady, ... }, ... });
onDocumentStateChange - 修改文档时调用的函数。 使用以下参数调用它:{"data": true} --适用于当前用户正在编辑文档时。使用以下参数调用它:{"data": false} --适用于当前用户的更改发送到 文档编辑服务时。
var onDocumentStateChange = function (event) { if (event.data) { console.log("The document changed"); } else { console.log("Changes are collected on document editing service"); } }; var docEditor = new DocsAPI.DocEditor("placeholder", { "events": { "onDocumentStateChange": onDocumentStateChange, ... }, ... });
onDownloadAs - 调用 downloadAs 方法时使用已编辑文件的绝对 URL 调用的函数。 要下载的文档的绝对 URL 及其类型在 data 参数中发送。
var onDownloadAs = function (event) { var fileType = event.data.fileType; var url = event.data.url; console.log("ONLYOFFICE Document Editor create file: " + url); }; var docEditor = new DocsAPI.DocEditor("placeholder", { "events": { "onDownloadAs": onDownloadAs, ... }, ... });
onError - 发生错误或其他特定事件时调用的函数。 错误消息在 data 参数中发送。 可以在此处找到错误代码列表。
var onError = function (event) { console.log("ONLYOFFICE Document Editor reports an error: code " + event.data.errorCode + ", description " + event.data.errorDescription); }; var docEditor = new DocsAPI.DocEditor("placeholder", { "events": { "onError": onError, ... }, ... });
onInfo - 应用程序打开文件时调用的函数。 模式在 data.mode 参数中发送。 可以 查看 或 编辑。
var onInfo = function (event) { console.log("ONLYOFFICE Document Editor is opened in mode " + event.data.mode); }; var docEditor = new DocsAPI.DocEditor("placeholder", { "events": { "onInfo": onInfo, ... }, ... });
onMetaChange - 通过 meta 命令更改文档的元信息时调用的函数。
文档的名称在 data.title 参数中发送。 收藏 图标高亮状态在 data.favorite 参数中发送。
当用户点击 收藏 图标时, 调用setFavorite方法更新 收藏 图标高亮状态信息。 如果未声明该方法,则收藏 图标不会更改。
var onMetaChange = function (event) { var title = event.data.title; var favorite = event.data.favorite; ... }; var docEditor = new DocsAPI.DocEditor("placeholder", { "events": { "onMetaChange": onMetaChange, ... }, ... });
onMakeActionLink - 当用户试图获取打开包含书签的文档的链接时调用的函数,滚动到书签位置。
要设置书签链接,您必须调用 setActionLink 方法。 书签数据在 data 参数中接收,然后必须在配置中用作 editorConfig.actionLink 参数的值。 如果未声明该方法,则不会显示 获取链接 按钮。
var onMakeActionLink = function (event){ var ACTION_DATA = event.data; ... var link = GENERATE_LINK(ACTION_DATA); docEditor.setActionLink(link); }; var docEditor = new DocsAPI.DocEditor("placeholder", { "events": { "onMakeActionLink": onMakeActionLink, ... }, ... });
onOutdatedVersion -显示 错误 后调用的函数,当使用旧的 document.key 值打开文档进行编辑时,该值用于编辑以前的文档版本并成功保存。 调用此事件时,必须使用新的 document.key重新初始化编辑器。
var onOutdatedVersion = function () { location.reload(true); }; var docEditor = new DocsAPI.DocEditor("placeholder", { "events": { "onOutdatedVersion": onOutdatedVersion, ... }, ... });
onPluginsReady - 当所有插件都加载并可以使用时调用的函数。
var onPluginsReady = function () { ... }; var docEditor = new DocsAPI.DocEditor("placeholder", { "events": { "onPluginsReady": onPluginsReady, ... }, ... });
onReady - 当应用程序加载到浏览器中时调用的函数。 自 5.0 版起已弃用,请改用 onAppReady
onRequestClose - 当编辑器的工作必须结束并且编辑器必须关闭时调用的函数。
var onRequestClose = function () { if (window.opener) { window.close(); return; } docEditor.destroyEditor(); }; var docEditor = new DocsAPI.DocEditor("placeholder", { "events": { "onRequestClose": onRequestClose, ... }, ... });
onRequestCompareFile* - 当用户尝试通过单击存储中的文档按钮来选择要进行比较的文档时调用的函数。 自版本 7.5 起已弃用,请改用 onRequestSelectDocument。
* - 仅适用于ONLYOFFICE企业版和ONLYOFFICE开发者版onRequestCreateNew - 当用户试图通过单击 新建 按钮来创建文档时调用的函数。 此方法用于代替 createUrl 字段。 如果未声明该方法且未指定 createUrl,则不会显示 新建 按钮。
var onRequestCreateNew = function () { ... }; var docEditor = new DocsAPI.DocEditor("placeholder", { "events": { "onRequestCreateNew": onRequestCreateNew, ... }, ... });
onRequestEditRights - 当用户试图通过单击 编辑文档 按钮将文档从查看模式切换到编辑模式时调用的函数。 调用该函数时,编辑器必须再次初始化,处于编辑模式。 如果未声明该方法,则不会显示 编辑 按钮。
var onRequestEditRights = function () { console.log("ONLYOFFICE Document Editor requests editing rights"); document.location.reload(); }; var docEditor = new DocsAPI.DocEditor("placeholder", { "events": { "onRequestEditRights": onRequestEditRights, ... }, ... });
onRequestHistory - 当用户试图通过单击 版本历史 按钮来显示文档版本历史时调用的函数。
要显示文档版本历史记录,您必须调用 refreshHistory 方法。 如果未声明该方法和 onRequestHistoryData 方法,则不会显示 版本历史 按钮。
var onRequestHistory = function () { docEditor.refreshHistory({ "currentVersion": 2, "history": [ { "created": "2010-07-06 10:13 AM", "key": "af86C7e71Ca8", "user": { "id": "F89d8069ba2b", "name": "Kate Cage" }, "version": 1 }, { "changes": changes, "created": "2010-07-07 3:46 PM", "key": "Khirz6zTPdfd7", "serverVersion": serverVersion, "user": { "id": "78e1e841", "name": "John Smith" }, "version": 2 }, ... ] }); }; var docEditor = new DocsAPI.DocEditor("placeholder", { "events": { "onRequestHistory": onRequestHistory, ... }, ... });
其中 changes 是保存文档后返回的 历史对象 的 更改。
其中 serverVersion 是保存文档后返回的 历史对象 中的 serverVersion 。
onRequestHistoryClose - 当用户试图通过单击 关闭历史记录 按钮查看文档版本历史记录返回文档时调用的函数。 调用该函数时,编辑器必须再次初始化,处于编辑模式。 如果未声明该方法,则不会显示 关闭历史记录 按钮。
var onRequestHistoryClose = function () { document.location.reload(); }; var docEditor = new DocsAPI.DocEditor("placeholder", { "events": { "onRequestHistoryClose": onRequestHistoryClose, ... }, ... });
onRequestHistoryData - 当用户尝试单击文档版本历史记录中的特定文档版本时调用的函数。
文档版本号在data参数中发送。
要显示与特定文档版本相对应的更改,您必须调用 setHistoryData 方法。 调用该方法时,必须添加token来验证参数。 如果该方法和 onRequestHistory 方法未声明,则不会显示版本历史记录按钮。
var onRequestHistoryData = function (event) { var version = event.data; docEditor.setHistoryData({ "changesUrl": "https://example.com/url-to-changes.zip", "fileType": "docx", "key": "Khirz6zTPdfd7", "previous": { "fileType": "docx", "key": "af86C7e71Ca8", "url": "https://example.com/url-to-the-previous-version-of-the-document.docx" }, "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjaGFuZ2VzVXJsIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS91cmwtdG8tY2hhbmdlcy56aXAiLCJmaWxlVHlwZSI6ImRvY3giLCJrZXkiOiJLaGlyejZ6VFBkZmQ3IiwicHJldmlvdXMiOnsiZmlsZVR5cGUiOiJkb2N4Iiwia2V5IjoiYWY4NkM3ZTcxQ2E4IiwidXJsIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS91cmwtdG8tdGhlLXByZXZpb3VzLXZlcnNpb24tb2YtdGhlLWRvY3VtZW50LmRvY3gifSwidXJsIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS91cmwtdG8tZXhhbXBsZS1kb2N1bWVudC5kb2N4In0.pfPJs9XvCmAnPiUnZYRm0rZGPYHzqfEP7AFRjKg1af4", "url": "https://example.com/url-to-example-document.docx", "version": version }) }; var docEditor = new DocsAPI.DocEditor("placeholder", { "events": { "onRequestHistoryData": onRequestHistoryData, ... }, ... });
其中 changesUrl 是保存文档后返回的 JSON 对象 中的 changesUrl。
其中 example.com 是安装了 文档管理器 和 文档存储服务 的服务器的名称。 有关文档服务器服务客户端-服务器交互的更多信息,请参阅 它是如何运作的 部分。
onRequestInsertImage - 当用户尝试通过单击 存储中的图像 按钮插入图像时调用的函数。
图像插入的类型在参数 data.c中指定。
要将图像插入文件,您必须使用指定的命令调用 insertImage 方法。 如果未声明该方法,则不会显示 Image from Storage 按钮。
var onRequestInsertImage = function (event) { docEditor.insertImage({ "c": event.data.c, "images": [ { "fileType": "png", "url": "https://example.com/url-to-example-image1.png" }, { "fileType": "png", "url": "https://example.com/url-to-example-image2.png" }, ... ], "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpbWFnZXMiOlt7ImZpbGVUeXBlIjoicG5nIiwidXJsIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS91cmwtdG8tZXhhbXBsZS1pbWFnZTEucG5nIn0seyJmaWxlVHlwZSI6InBuZyIsInVybCI6Imh0dHBzOi8vZXhhbXBsZS5jb20vdXJsLXRvLWV4YW1wbGUtaW1hZ2UyLnBuZyJ9XX0.ly1O8-6u4Y7WJlgp9O-bJMeffHe0GtaXzyvY2UUFJTg" }); }; var docEditor = new DocsAPI.DocEditor("placeholder", { "events": { "onRequestInsertImage": onRequestInsertImage, ... }, ... });其中 example.com 是安装了 文档管理器 和 文档存储服务 的服务器的名称。 有关文档服务器服务客户端-服务器交互的更多信息,请参阅 它是如何运作的 部分。
onRequestMailMergeRecipients - 当用户尝试通过单击邮件合并按钮来选择收件人数据时调用的函数。 自版本 7.5 起已弃用,请改用 onRequestSelectSpreadsheet。
onRequestOpen - 当用户尝试通过单击打开源按钮打开外部链接时调用的函数。 如果未声明该方法,则不会显示此按钮。
要在新选项卡中打开包含 path 或 referenceData 参数引用的外部文件的编辑器, 您必须通过调用带有 path 和 windowName 参数的方法 window.open, 来传递指向此选项卡的链接。
具有唯一文件数据、文件路径和新浏览器选项卡名称的对象将在 data 参数中发送。
var onRequestOpen = function (event) { var path = event.data.path; var referenceData = event.data.referenceData; var windowName = event.data.windowName; window.open({ "path": "https://example.com/external-url.docx", "windowName": event.data.windowName }); }; var docEditor = new DocsAPI.DocEditor("placeholder", { "events": { "onRequestOpen": onRequestOpen, ... }, ... });其中 example.com 是安装了 文档管理器 和 文档存储服务 的服务器的名称。 有关文档服务器服务客户端-服务器交互的更多信息,请参阅 它是如何运作的 部分。
onRequestReferenceData - 当用户尝试通过单击 数据选项卡的外部链接对话框中的更新值按钮来刷新从外部文件插入的数据时调用的函数。
含有来自源文件的唯一文件数据、文件路径或名称以及文件 URL 的对象在 data 参数中发送。
要通过事件参数指定的文件链接刷新数据,您必须调用 setReferenceData 方法。 调用该方法时,必须添加token来验证参数。 如果未声明该事件,则不会显示粘贴链接和更新值按钮。
var onRequestReferenceData = function () { var link = event.data.link; var referenceData = event.data.referenceData; var path = event.data.path; ... docEditor.setReferenceData({ "fileType": "xlsx", "path": "sample.xlsx", "referenceData": { "fileKey": "BCFA2CED", "instanceId": "https://example.com", "key": "Khirz6zTPdfd7" }, "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmaWxlVHlwZSI6Inhsc3giLCJwYXRoIjoic2FtcGxlLnhsc3giLCJyZWZlcmVuY2VEYXRhIjp7ImZpbGVLZXkiOiJCQ0ZBMkNFRCIsImluc3RhbmNlSWQiOiJodHRwczovL2V4YW1wbGUuY29tIn0sInVybCI6Imh0dHBzOi8vZXhhbXBsZS5jb20vdXJsLXRvLWV4YW1wbGUtZG9jdW1lbnQueGxzeCJ9.UXosmM-E_Cu9j9QGSlcj9FEoSu5m-zCS4b6FxO_2k7w", "url": "https://example.com/url-to-example-document.xlsx" }); }; var docEditor = new DocsAPI.DocEditor("placeholder", { "events": { "onRequestReferenceData": onRequestReferenceData, ... }, ... });
onRequestReferenceSource - 当用户尝试通过单击更改源 按钮更改外部数据源时调用的函数。
具有唯一文件数据和文件路径或名称的对象在 data 参数中发送。
单击该按钮时,必须调用 setReferenceSource 方法来更改外部数据的来源。 调用该方法时,必须添加token来验证参数。 如果未声明事件,则不会显示更改源按钮。
var onRequestReferenceSource = function () { var referenceData = event.data.referenceData; var path = event.data.path; ... docEditor.setReferenceSource({ "fileType": "xlsx", "path": "sample.xlsx", "referenceData": { "fileKey": "BCFA2CED", "instanceId": "https://example.com", "key": "Khirz6zTPdfd7" }, "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmaWxlVHlwZSI6Inhsc3giLCJwYXRoIjoic2FtcGxlLnhsc3giLCJyZWZlcmVuY2VEYXRhIjp7ImZpbGVLZXkiOiJCQ0ZBMkNFRCIsImluc3RhbmNlSWQiOiJodHRwczovL2V4YW1wbGUuY29tIn0sInVybCI6Imh0dHBzOi8vZXhhbXBsZS5jb20vdXJsLXRvLWV4YW1wbGUtZG9jdW1lbnQueGxzeCJ9.UXosmM-E_Cu9j9QGSlcj9FEoSu5m-zCS4b6FxO_2k7w", "url": "https://example.com/url-to-example-document.xlsx" }); }; var docEditor = new DocsAPI.DocEditor("placeholder", { "events": { "onRequestReferenceSource": onRequestReferenceSource, ... }, ... });
onRequestRename - 当用户试图通过单击 重命名... 按钮重命名文件时调用的函数。
var onRequestRename = function (event) { var title = event.data; ... }; var docEditor = new DocsAPI.DocEditor("placeholder", { "events": { "onRequestRename": onRequestRename, ... }, ... });
onRequestRestore - 当用户尝试通过单击版本历史记录中的恢复按钮来恢复文件版本时调用的函数。
如果从历史记录中调用文档版本,则文档版本号将在 data.version 参数中发送。 此外,如果从 历史对象 中调用文档更改,则文档链接会在 data.url 参数中发送。 此链接指定的文档类型在 data.fileType 参数中发送。
调用该函数时,必须调用 refreshHistory 方法再次初始化版本历史记录。 如果未声明该方法,则不会显示恢复按钮。
var onRequestRestore = function (event) { var fileType = event.data.fileType; var url = event.data.url; var version = event.data.version; ... docEditor.refreshHistory({ "currentVersion": 2, "history": [ { "created": "2010-07-06 10:13 AM", "key": "af86C7e71Ca8", "user": { "id": "F89d8069ba2b", "name": "Kate Cage" }, "version": 1 }, { "changes": changes, "created": "2010-07-07 3:46 PM", "key": "Khirz6zTPdfd7", "serverVersion": serverVersion, "user": { "id": "78e1e841", "name": "John Smith" }, "version": 2 }, ... ] }); }; var docEditor = new DocsAPI.DocEditor("placeholder", { "events": { "onRequestRestore": onRequestRestore, ... }, ... });
其中 changes 是保存文档后返回的 历史对象 的 更改。
其中 serverVersion 是保存文档后返回的 历史对象 中的 serverVersion。
其中 example.com 是安装了 文档管理器 和 文档存储服务 的服务器的名称。 有关文档服务器服务客户端-服务器交互的更多信息,请参阅 它是如何运作的 部分。
onRequestSaveAs - 当用户试图通过单击 另存为... 按钮来保存文件时调用的函数。 文档的标题、其类型和要下载的文档的绝对 URL 在 data 参数中发送。 如果未声明该方法,将不会显示 另存为... 按钮。
var onRequestSaveAs = function (event) { var fileType = event.data.fileType; var title = event.data.title; var url = event.data.url; ... }; var docEditor = new DocsAPI.DocEditor("placeholder", { "events": { "onRequestSaveAs": onRequestSaveAs, ... }, ... });
onRequestSelectDocument* - 当用户尝试选择一个文档进行比较或组合时调用的函数。
文档选择的类型在data.c参数中指定。
要选择一个文档进行比较或合并,您必须调用 setRequestedDocument 方法。
* - 仅适用于ONLYOFFICE企业版和ONLYOFFICE开发者版var onRequestSelectDocument = function () { docEditor.setRequestedDocument({ "c": event.data.c, "fileType": "docx", "url": "https://example.com/url-to-example-document.docx", "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmaWxlVHlwZSI6ImRvY3giLCJ1cmwiOiJodHRwczovL2V4YW1wbGUuY29tL3VybC10by1leGFtcGxlLWRvY3VtZW50LmRvY3gifQ.t8660n_GmxJIppxcwkr_mUxmXYtE8cg-jF2cTLMtuk8" }); }; var docEditor = new DocsAPI.DocEditor("placeholder", { "events": { "onRequestSelectDocument": onRequestSelectDocument, ... }, ... });其中 example.com 是安装文档管理器和文档存储服务的服务器的名称。 请参阅 工作原理 部分,了解有关文档服务器服务客户端与服务器交互的更多信息。
onRequestSelectSpreadsheet - 当用户尝试通过单击邮件合并按钮来选择收件人数据时调用的函数。
电子表格选择的类型在 data.c 参数中指定。
要选择收件人数据,您必须调用 setRequestedSpreadsheet 方法。 调用该方法时,必须添加token来验证参数。 如果未声明该方法,邮件合并按钮将变灰且不可单击。
var onRequestSelectSpreadsheet = function () { docEditor.setRequestedSpreadsheet({ "c": event.data.c, "fileType": "xlsx", "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmaWxlVHlwZSI6Inhsc3giLCJ1cmwiOiJodHRwczovL2V4YW1wbGUuY29tL3VybC10by1leGFtcGxlLXJlY2lwaWVudHMueGxzeCJ9.P3TjOyX1Tv3xAVRAc8qtNb-uFLD6FH_WErag_rbI6nQ", "url": "https://example.com/url-to-example-recipients.xlsx" }); }; var docEditor = new DocsAPI.DocEditor("placeholder", { "events": { "onRequestSelectSpreadsheet": onRequestSelectSpreadsheet, ... }, ... });其中 example.com 是安装文档管理器和文档存储服务的服务器的名称。 请参阅 工作原理 部分,了解有关文档服务器服务客户端与服务器交互的更多信息。
onRequestSendNotify - 当评论中提到用户时调用的函数。
消息和电子邮件列表在 data 参数中发送。 注释数据在 data.actionLink 参数中接收,然后必须在配置中用作 editorConfig.actionLink 参数的值。
要提及的用户列表应通过 setUsers 方法完成。
var onRequestSendNotify = function (event) { var ACTION_DATA = event.data.actionLink; var comment = event.data.message; var emails = event.data.emails; ... }; var docEditor = new DocsAPI.DocEditor("placeholder", { "events": { "onRequestSendNotify": onRequestSendNotify, ... }, ... });
onRequestSharingSettings - 当用户试图通过单击 更改访问权限 按钮来管理文档访问权限时调用的函数。
当访问权限发生变化时,您必须调用 setSharingSettings 方法来更新有关允许与其他用户共享文档的设置的 信息。 如果未声明该方法,则不会显示 更改访问权限 按钮。
var onRequestSharingSettings = function () { docEditor.setSharingSettings({ "sharingSettings": [ { "permissions": "Full Access", "user": "John Smith" }, { "isLink": true, "permissions": "Read Only", "user": "External link" } ] }); ... }; var docEditor = new DocsAPI.DocEditor("placeholder", { "events": { "onRequestSharingSettings": onRequestSharingSettings, ... }, ... });
onRequestUsers - 当用户可以选择其他用户在评论中提及、授予编辑特定工作表范围的访问权限或设置用户头像时调用的函数。
从7.4版本开始,可以在data.c参数中指定操作类型。 它可以采用两个值 - mention或protect。 在版本 7.4 之前,此事件仅支持mention操作。
从8.0版本开始,新增info操作类型,为data.id参数中指定id的用户设置头像。
要设置用户列表,您必须调用 setUsers 方法,该方法可以根据指定的情况采用不同的用户列表 操作类型。 当执行相应的操作时,每个 c 类型都会调用一次 onRequestUsers 事件。 如果使用空列表调用setUsers,则onRequestUsers事件将再次触发。
var onRequestUsers = function (event) { var c = event.data.c; var id = event.data.id; ... docEditor.setUsers({ "c": event.data.c, "users": [ { "email": "john@example.com", "id": "78e1e841", "image": "https://example.com/url-to-user-avatar1.png", "name": "John Smith" }, { "email": "kate@example.com", "id": "F89d8069ba2b", "image": "https://example.com/url-to-user-avatar2.png", "name": "Kate Cage" }, ... ] }); }; var docEditor = new DocsAPI.DocEditor("placeholder", { "events": { "onRequestUsers": onRequestUsers, ... }, ... });
onWarning - 发生警告时调用的函数。 警告消息在 data 参数中发送。 可以在此处找到错误代码列表。
var onWarning = function (event) { console.log("ONLYOFFICE Document Editor reports a warning: code " + event.data.warningCode + ", description " + event.data.warningDescription); }; var docEditor = new DocsAPI.DocEditor("placeholder", { "events": { "onWarning": onWarning, ... }, ... });