Word JavaScript API 中的 Comment.Id 是不可变的吗?

问题描述 投票:0回答:1

Word.Comment 类有一个 Id 属性。有谁确切知道这是否是不可变的,或者它可以在编辑或会话之间改变吗?

https://learn.microsoft.com/en-us/javascript/api/word/word.comment?view=word-js-1.5

ms-word office-js
1个回答
0
投票

我相信在大多数情况下,一旦创建了评论,评论 ID 就会被保留。但是,这取决于评论的创建方式。

当您在当前版本的 Word 中创建注释时,Word 会创建一个注释 ID,并在保存文件时将其保存在名为

durableId
的 XML 属性中。 (我认为它可以将其保存在多个地方,因为 .docx(或其他)中有 CommentIds 部分和 CommentsExtensible 部分

例如该元素看起来像这样:

<w16cex:durableId="6AF7AF0C"

如果注释已分配了

durableId
,则 JavaScript 将始终看到相同的 Id,即使您关闭并重新打开文档和 Word 本身也是如此。

但是,如果文档是在旧版本的 Word 中创建的(例如,我在这里使用 Word 2013),则 Word 不会创建 DurableId。在这种情况下,如果您在现代版本的 Word 中打开文档,Word 将为每条注释创建一个

durableId
。只要文档打开,该 Id 就会持续存在,如果您或您的 JavaScript 保存该文档,该 Id 将存储在 DurableId 元素中,并且在下次打开时将保持不变。如果文档没有保存,那么下次打开同一条评论时会有不同的 ID。

但是,我不确定如果您启用跟踪更改、删除评论,然后在审阅过程中恢复它们,会发生什么。

另外,如果您以某些旧格式(例如 .doc,也许是 .rtf)保存文档,则

durableId
可能会被丢弃和丢失。

我在 ScriptLab 中使用了这个简单的代码片段来检查评论 ID:

const comment = context.document
   .getSelection()
   .getComments()
   .getFirst();
await context.sync();
console.log(parseInt(comment.id,10).toString(16));
© www.soinside.com 2019 - 2024. All rights reserved.