挂载文档
挂载节点是指文档应用插入页面时挂载的 HTML DOM 节点,SDK 初始化时,会自动在挂载节点下面插入一个 iframe 元素,并在该 iframe 元素中渲染文档应用。
语法
ZOfficeSDK.mount(url, selector, bAsync, config)
返回值
Application: 文档类型应用对象
- Sheet: Sheet.Workbook
- Writer: Writer.Document
- PDF: PDF.Pdf
参数
| 属性 | 数据类型 | 必填 | 说明 |
|---|---|---|---|
| url | string|object | 是 | 要被挂载的文档的地址。此参数也可以设置为对象,见url参数的其他形式 |
| selector | string | 是 | 要挂载文档的DOM节点的selector |
| bAsync | boolean | 否 | true 表示在文档加载完成之前返回 Application,但使用高级API之前需要调用 Application.ready() 方法等待文档加载完成(推荐传true,在文档内容加载完成之前,更早的返回可用的 Application,避免等待时间过长) |
| config | JSON | 否 | 可定制初始化显示/隐藏页面组件 |
示例:
以挂载文档地址为 http://172.16.22.98/docs/app/thirdparty-rest/1347466381985058817/edit/content?zdocs_access_token=653b90d845a785e3c69aeba 的表格文档为例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>JSSDK</title>
</head>
<body>
<div id="doc1" class="doc-container"></div>
<script src="sdk 地址"></script>
<script>
window.onload = async function() {
const Application = await ZOfficeSDK.mount('http://172.16.22.98/docs/app/thirdparty-rest/1347466381985058817/edit/content?zdocs_access_token=653b90d845a785e3c69aeba', '#doc1', true);
await Application.ready();
const sheets = await Application.ActiveWorkbook.getSheets()
console.log(sheets);
}
</script>
</body>
</html>
url参数的其他形式
url参数支持另外两种对象形式:
第一种(v8.2开始):
url 直接传字符串时,SDK 会发送 GET 请求访问文档中台。如果想让 SDK 发送 POST 请求,可以将 url 改为下面形式的对象,参数会在请求体中发送。这种方式适用于标准集成,相关概念见安全。
{
url: '在线文档的访问地址(不带查询参数)',
access_token: '三方系统需要的token',
// 可选自定义参数
}
文档比对时,将 url 设为比对接口地址,并在对象中传入 docA、docB 等参数。详见文档比对 API POST 集成方式。
{
url: 'http://{zofficehost}/docs/app/{repoId}/compare',
docA: 'docAId',
docB: 'docBId',
access_token: 'xxx'
}
第二种(v8.1开始):
当使用前端SDK集成时需要使用配置对象替代 url,详见编辑示例和配置。
文档比对时,在常规 initConfig 基础上补充 metaB、repoConfig.downloadUrlB,并将 openConfig.action 设为 compare。SDK 会以 POST 方式请求 /app/{repoId}/compare,提交后直接返回 null,不建立 SDK 连接、不创建 Application(比对页无单文档可连)。详见文档比对 API 前端 SDK 集成方式。