检测Word上的更改(API Office)

时间:2019-01-11 17:44:42

标签: typescript ms-word office-js

在编辑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 );
}

1 个答案:

答案 0 :(得分:1)

我不知道COM对象模型中是否有任何事件,该事件检测何时/正在编辑Word文档。

有一个Saved属性,可以查询该属性是否进行了更改。但是,这并不意味着对该文档进行了 no 更改。它仅报告是否有尚未保存到磁盘的任何更改(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

如果有必要完全知道是否进行了任何更改,则必须进行比较。