Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 检测Word上的更改(API Office)_Typescript_Ms Word_Office Js - Fatal编程技术网

Typescript 检测Word上的更改(API Office)

Typescript 检测Word上的更改(API Office),typescript,ms-word,office-js,Typescript,Ms Word,Office Js,编辑Word文档时,它会在对文件进行任何更新后自动检测 我在Microsoft文档中找不到此功能,它是否存在 因为,我想显示一个弹出窗口(退出)只有当有修改 目前,我不得不比较我的两个(base64-string)文档,这似乎不可靠,我更喜欢一个事件 谢谢 更多信息: 我的代码基于(getFile) 函数_arrayBufferToBase64(缓冲区){ var二进制=“”; var字节=新的Uint8Array(缓冲区); var len=字节数。字节长度; 对于(变量i=0;i

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

我在Microsoft文档中找不到此功能,它是否存在

因为,我想显示一个弹出窗口(退出)只有当有修改

目前,我不得不比较我的两个(base64-string)文档,这似乎不可靠,我更喜欢一个事件

谢谢

更多信息: 我的代码基于(getFile)

函数_arrayBufferToBase64(缓冲区){
var二进制=“”;
var字节=新的Uint8Array(缓冲区);
var len=字节数。字节长度;
对于(变量i=0;i
我不知道COM对象模型中有任何事件可以检测Word文档何时被编辑

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

还有一个
DocumentBeforeSave
事件,它在发出
Save
命令时发出通知

Word JS API还有一个
文档。保存的
属性:

Office JS API有一个事件
BindingDataChanged
,可能会有所帮助。从这里开始,从这里开始


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

您好!很抱歉耽搁了,非常感谢您的回复。我使用的是“insertFileFromBase64(…)”(Office Js),因此,我认为不可能使用“save”事件/属性(我将/无法将其保存在磁盘上)。我的问题是,我不知道为什么,我的值(string base64)会更改,而我甚至不会更改文档(我使用的是“getFile()”,然后在另一个变量上进行复制。就在比较之前,我使用相同的方法得到整个文档,但它从来都不相等(==)(示例中长度不同)我不知道这是否是编码或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 );
}