iframe中的文档重新加载了之后,之前监听的事件不生效了
解答:
事件监听信息在 SDK 存储了一份,在文档中页存储了一份。文档重新加载,是不会保留之前的监听的,意味着文档中存储的那份丢了。文档重新加载之后就需要重新监听。
由于用户可能无法从代码层面知道文档什么时候重新加载了,这里提供一个最稳妥的事件监听方案
在 ZOfficeSDK.addListener 监听文档打开回调里面再去监听文档保存事件,前者不受文档reload影响。文档重新加载后,其他事件监听不生效的问题,都可以通过此方法解决
// 每次文档打开后,进行事件监听;即在 FileOpen 事件回调里监听想要的事件
var app;
ZOfficeSDK.addListener('.my-doc-editor','IDOCS.Event.FileOpen', async () => {
console.log('file open')
app = await ZOfficeSDK.connect('.my-doc-editor');
await app.ready();
// 监听文档保存事件
Application.addListener('IDocs.Event.FileStatus', (data) => {
console.log("FileStatus: ", data);
});
})
ZOfficeSDK.mount('http://111.30.26.225:8001/docs/app/sCWVriqjtmkfQx4N/1972968612766756865/edit/content?token=d0269723-eee1-4861-bbd8-48c9e940070b', '.my-doc-editor',true)