Skip to content
本页内容

销毁对象

由于 iframe 的跨域安全限制,没办法直接调用 iframe 内部的函数和变量。

js-sdk 提供的高级 API 对象,只是对 iframe 内部的映射,它是通过 postMessage 进行通信的,所以部分对象需要手动销毁。

const app = jssdk.ExcelApplication()

// 例如表格获取 WorkSheet 对象
const sheet = jssdk.Sheets.Item('sheet1')

// 此时得到的 sheet 对象只是一个映射对象
// 它拥有 iframe 内部对象的所有属性和方法
// 该对象的所有属性和方法都会映射到 iframe 内部
sheet.Activate() // 切换 sheet

// ...do something

// 不需要该对象时,可以手动销毁
// 此时会通知 iframe 内部销毁对应对象
sheet.Destroy()

批量释放对象

由于单个对象销毁比较麻烦,所以 js-sdk 还提供了接口可以按照区间销毁,进而达到批量释放:

const stack = app.Stack()

// ...do something

stack.End() // 在 stack 区间的对象都会被销毁