Skip to content
开发文档
能力中心
应用市场
WebOffice
开发者后台

代理界面元素

Window.BailHook(方法)

说明

对特定的界面元素进行代理,代理方法返回true时,则不显示原界面

语法

表达式.BailHook(CmbId)

表达式: Window

参数

参数名是否必需类型描述
CmbIdstring界面元素ID,目前支持 RecordInfo(记录详情卡片)

返回值

浏览器环境示例

javascript
async function example() {
    await instance.ready();
    const app = instance.Application;

    const hook = await app.Window.BailHook("RecordInfo")
    hook.InvokeSingle((params)=>{
        console.log(params) // 移动端返回参数 {recordId: 'Jp', activeFieldId: 'E'}
                            // pc端返回参数 {recordId: 'Jp', isShowComment: false}
                            // 移动端和PC端 用到的参数都是 recordId,其它参数是界面区别
        // 可以通过 await WPSOpenApi.Application.ActiveView.RecordRange(params.recordId).Value 读取记录的数据
        const count = await Application.ActiveView.RecordRange.Count
        const record = Application.ActiveView.RecordRange(params.recordId)
        const values = await record.Value
        const index = await record.Index // 注意 Index base 1, 可能有多条记录,返回 [index]
        const prevRecord = Application.ActiveView.RecordRange(index.map(_=> _ - 1))
        const nextRecord = Application.ActiveView.RecordRange(index.map(_=> _ + 1))
        // 在这里实现自定义的界面逻辑,替换掉原来的界面
        record.Select()
        return true // return true 会不弹出原界面
    })
}
回到旧版