Обнаружение изменений в Word (API Office) - PullRequest
0 голосов
/ 11 января 2019

Когда вы редактируете документ Word, он автоматически обнаруживается после любого обновления файла.

Я не нахожу эту функцию в документации Microsoft, она существует?

Так как я хотел бы показать всплывающее окно (чтобы выйти), только если есть изменения.

В настоящее время мне нужно сравнить два моих документа (base64 - string), это кажется ненадежным, я предпочитаю событие.

Спасибо

Больше информации: Мой код основан на 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 голосов
/ 11 января 2019

Я не знаю ни одного события в модели объектов 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

В API Office JS есть событие 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

Если вообще необходимо знать, были ли внесены какие-либо изменения, тогда необходимо сравнение.

...