从文档中收集所有评论,并将其显示在自定义界面中。
当用户打开文档时,会执行 GetAllComments 方法来收集文档中的所有评论, 并将其显示在自定义界面中。 将显示以下评论数据:评论作者、发布评论的时间、评论文本和评论回复:
var comments = []; var onDocumentReady = function () { window.connector = docEditor.createConnector(); ... connector.executeMethod("GetAllComments", null, function (data) { comments = data; }); ... }
当用户单击自定义界面中的 添加评论 按钮时,将执行 AddComment 方法向文档添加新评论。调用此方法后,会触发 onAddComment 事件, 将新评论添加到包含所有文档评论的数组中:
var onDocumentReady = function () { ... connector.attachEvent("onAddComment", function (val) { var index = comments.findIndex((comment) => comment["Id"] === val["Id"]); if (index == -1) { comments = [val, ...comments]; } }); ... } ... $("#addComment").on("click", function () { ... var comment = $("#addCommentArea").val(); if (Boolean(comment)) { var currentdate = Date.now(); var datetime = "" + currentdate; connector.executeMethod("AddComment", [{ Text: comment, UserName: "John Smith", Time: datetime }] ); } ... });
当用户单击自定义界面中的 删除评论 按钮时,将执行 RemoveComments 方法从文档中删除评论。调用此方法后,将触发 onRemoveComment 事件, 以从包含所有文档评论的数组中删除评论:
var onDocumentReady = function () { ... connector.attachEvent("onRemoveComment", function (val) { const index = comments.findIndex((comment) => comment["Id"] === val["Id"]); if (index !== -1) { comments.splice(index, 1); } ... }); ... } $("#deleteComment").on("click", function () { ... connector.executeMethod("RemoveComments", [[comments[indexComment]["Id"]]]); ... });
当用户单击自定义界面中的箭头按钮时,将执行MoveToComment 方法在文档中的评论之间移动:
... connector.executeMethod("MoveToComment", [comments[indexComment]["Id"]]); ...
当用户单击自定义界面中的 添加回复 按钮时,将执行 ChangeComment 方法, 通过更改 CommentData 对象向现有评论添加回复。调用此方法后,会触发 onChangeCommentData 事件, 将新的评论回复添加到包含所有文档评论的数组中:
var onDocumentReady = function () { ... connector.attachEvent("onChangeCommentData", function (val) { const index = comments.findIndex((comment) => comment["Id"] === val["Id"]); if (index !== -1) { comments[index]["Data"] = val["Data"]; } }); ... } $("#addReply").on("click", function () { ... var reply = $("#addReplyArea").val(); if (Boolean(reply)) { var currentdate = Date.now(); var datetime = "" + currentdate; comments[indexComment]["Data"]["Replies"].push({ Text: reply Time: datetime, UserName: "John Smith" }); connector.executeMethod( "ChangeComment", [comments[indexComment]["Id"], comments[indexComment]["Data"]] ); } ... });
请注意,该连接器仅适用于 ONLYOFFICE 开发者版本。
此类是一项附加功能,需要额外付费。 如果您有任何疑问,请通过 sales@onlyoffice.com 联系我们的销售团队。