首页 > 解决方案 > 检测 Word 上的更改(API Office)

问题描述

当您编辑 Word 文档时,它会在对文件进行任何更新后自动检测。

我在 Microsoft 文档中没有找到此功能,它存在吗?

因为,我只想在有修改的情况下显示一个弹出窗口(退出)。

目前,我必须比较我的两个(base64 - 字符串)文档,这似乎不可靠,我更喜欢一个事件。

谢谢

更多信息:我的代码基于https://docs.microsoft.com/en-us/javascript/api/office/office.document?view=office-js#getfileasync-filetype--options--callback- (getFile )

function _arrayBufferToBase64( buffer ) {
    var binary = '';
    var bytes = new Uint8Array( buffer );
    var len = bytes.byteLength;
    for (var i = 0; i < len; i++) {
        binary += String.fromCharCode( bytes[ i ] );
    }
    return window.btoa( binary );
}

标签: typescriptms-wordoffice-js

解决方案


我不知道 COM 对象模型中有任何事件可以检测 Word 文档何时被编辑/已被编辑。

有一个Saved属性可以查询以了解是否进行了更改。然而,这并不意味着没有对文档进行任何更改。它只报告是否有任何更改尚未保存到磁盘(True = 没有更改挂起;False = 内存中存在尚未保存的更改)。

并且有一个DocumentBeforeSave事件会在发出Save命令时发出通知。

Word JS API 也有一个Document.Saved属性:https ://docs.microsoft.com/en-us/javascript/api/word/word.document?view=office-js#saved

Office JS API 有一个事件BindingDataChanged可能会有所帮助。从这里开始https://docs.microsoft.com/en-us/javascript/api/office/office.eventtype?view=office-js和这里https://docs.microsoft.com/en-us/javascript/api /office/office.binding?view=office-js

如果有必要知道是否进行了任何更改,那么就需要进行比较。


推荐阅读