Skip to content

事件(Sub)

文档事件对象

属性列表

属性说明
监听新增评论
获取剪切板回调事件
监听当前页改变
监听大纲目录点击事件
监听目录的显示隐藏(对应页面/导航窗格)
监听下拉选项的更改
监听编辑评论
发现有缺失的字体
监听删除评论
监听页面版式变化
滚动通知事件
选区变化通知事件

AddComment

监听新增评论

语法

表达式.Sub.AddComment = Function

表达式:文档类型应用对象

返回值

属性数据类型说明
author
String
评论所属用户的名称
pos
Number
评论对应正文内容的起始位置
len
Number
评论对应正文的长度
commentId
String
评论 id
rcId
String
评论 id
replyCommentId
String
所回复评论的 id
type
String
类型
content
String
评论内容
date
String
评论时间

提示:commentId 不一定有,可以通过 rcId 判断,每个评论都会有对应的 rcId

示例

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  app.Sub.AddComment = e => {
    console.log(e)
  }
}

ClipboardCopy

获取剪切板回调事件

语法

表达式.Sub.ClipboardCopy = Function

表达式:文档类型应用对象

返回值

属性数据类型说明
copyId
String
剪切板 id
isRestoreFocus
Boolean
undefined
text
String
复制的内容

示例

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 获取剪切板回调事件
  app.Sub.ClipboardCopy = e => {
    console.log(e)
  }
}

CurrentPageChange

仅支持 PC 端

监听当前页改变

语法

表达式.Sub.CurrentPageChange = Function

表达式:文档类型应用对象

示例

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 监听当前页改变
  app.Sub.CurrentPageChange = e => {
    console.log('当前页改变:', e)
  }
}

DocMapItemClick

仅支持 PC 端

监听大纲目录点击事件

语法

表达式.Sub.DocMapItemClick = Function

表达式:文档类型应用对象

示例

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  app.Sub.DocMapItemClick = e => {
    console.log(e)
  }
}

DocMapPanelChange

仅支持 PC 端

监听目录的显示隐藏(对应页面/导航窗格)

语法

表达式.Sub.DocMapPanelChange = Function

表达式:文档类型应用对象

示例

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 监听目录的显示隐藏(对应页面/导航窗格)
  app.Sub.DocMapPanelChange = e => {
    console.log('目录侧边栏显示:', e)
  }
}

仅支持 PC 端

监听下拉选项的更改

语法

表达式.Sub.DropdownListControlItemChange = Function

表达式:文档类型应用对象

示例

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 监听下拉选择控件选项的更改
  app.Sub.DropdownListControlItemChange = e => {
    console.log('监听下拉选项的更改', e)
    /* 返回信息结构:
       {
        Pos: Number, // 位置信息
        Type: String, // 为 'Select' 则为选中,为 'UnSelect' 则为取消选中
        Info: {
          Text: String, // 显示文本
          Value: String, // 编程值
        },
      }
    */
  }
}

EditComment

监听编辑评论

语法

表达式.Sub.EditComment = Function

表达式:文档类型应用对象

返回值

属性数据类型说明
author
String
评论所属用户的名称
pos
Number
评论对应正文内容的起始位置
len
Number
评论对应正文的长度
commentId
String
评论 id
rcId
String
评论 id
replyCommentId
String
所回复评论的 id
type
String
类型
content
String
评论内容
date
String
评论时间

提示:commentId 不一定有,可以通过 rcId 判断,每个评论都会有对应的 rcId

示例

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  app.Sub.EditComment = e => {
    console.log(e)
  }
}

FontMissing

发现有缺失的字体

语法

表达式.Sub.FontMissing = Function

表达式:文档类型应用对象

示例

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  app.Sub.FontMissing = e => {
    console.log(e)
  }
}

RemoveComment

监听删除评论

语法

表达式.Sub.RemoveComment = Function

表达式:文档类型应用对象

返回值

属性数据类型说明
author
String
评论所属用户的名称
pos
Number
评论对应正文内容的起始位置
len
Number
评论对应正文的长度
commentId
String
评论 id
rcId
String
评论 id
replyCommentId
String
所回复评论的 id
type
String
类型
content
String
评论内容
date
String
评论时间

提示:commentId 不一定有,可以通过 rcId 判断,每个评论都会有对应的 rcId

示例

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  app.Sub.RemoveComment = e => {
    console.log(e)
  }
}

ViewModeChange

监听页面版式变化

语法

表达式.Sub.ViewModeChange = Function

表达式:文档类型应用对象

示例

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 监听页面版式变化
  app.Sub.ViewModeChange = d => {
    console.log(d) // web 为连页模式,pages 为分页模式
  }
}

WindowScrollChange

滚动通知事件

语法

表达式.Sub.WindowScrollChange = Function

表达式:文档类型应用对象

示例

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 滚动通知事件
  app.Sub.WindowScrollChange = ({ Data }) => {
    // 左上角坐标x, y
    console.log(Data.scrollLeft, Data.scrollTop)
  }
}

WindowSelectionChange

选区变化通知事件

语法

表达式.Sub.WindowSelectionChange = Function

表达式:文档类型应用对象

示例

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 选区变化通知事件
  app.Sub.WindowSelectionChange = e => {
    const { begin, end } = e
    //选区开始位置 结束位置
    console.log(`选区开始位置:${begin}, 结束位置:${end}`)
  }

  //设置选区范围
  setTimeout(async () => {
    await app.ActiveDocument.Range(100, 100).SetRange(10, 10)
  }, 2000)
}