由于iframe的跨域安全限制,无法直接调用iframe内部的函数和变量。JS-SDK提供的高级接口对象只是iframe内部对象的映射,通过postMessage
进行通信,所以部分对象需要手动销毁。
说明
需要手动释放的对象均会在文档中说明,请以文档说明为准。
接入方网页和文档在线编辑的关系如下图所示:
手动释放对象
手动释放单个对象示例:
const app = instance.ExcelApplication();
//例如表格获取WorkSheet对象
const sheet = instance.Sheets.Item('sheet1');
//此时得到的sheet对象只是一个映射对象,它拥有iframe内部对象的所有属性和方法,该对象的所有属性和方法都会映射到iframe内部
sheet.Activate(); //切换sheet
//...do something
//不需要改对象时,可以手动销毁
//此时会通知iframe内部销毁对应对象
sheet.Destroy();
批量释放对象
当有多个对象需要销毁时,可以按照区间批量释放对象。
代码示例:
const stack = app.Stack();
//...do something
stack.End(); //在stack区间的对象都会被销毁
文档内容是否对您有帮助?