PageOffice 开发者中心 PageOffice 开发者中心
首页
文档
  • 后端Java手册 (opens new window)
  • 后端.netcore手册 (opens new window)
  • 前端JavaScript手册 (opens new window)
下载
购买 (opens new window)
首页
文档
  • 后端Java手册 (opens new window)
  • 后端.netcore手册 (opens new window)
  • 前端JavaScript手册 (opens new window)
下载
购买 (opens new window)
  • 开始

  • 通用控制

    • PageOffice最简单的打开保存文件
    • 磁盘路径打开文档
    • 修改标题栏文本内容
    • 自定义工具条上添加按钮
    • 隐藏标题栏
    • 隐藏Office工具栏
    • 隐藏自定义工具栏
    • 禁止保存
    • 禁止另存为
    • 禁止打印
    • 保存后给前台返回自定义结果
    • 给SaveFilePage指向的地址传参
    • 给SaveFilePage指向的地址传参(Vue)
    • SaveFilePage获取页面Form域
    • POBrowser回调父页面的函数传值
      • 给POBrowser打开的页面传参
      • 另存文件为HTML格式
      • 另存文件为PDF格式
      • 保存数据区域数据同时保存文档
      • 文档打开后触发的事件
      • POBrowser窗口关闭前触发的事件
      • 打开保存数据库中的文件
      • WebCreateNew新建文件
      • 控制POBrowser窗口的位置
      • 打开云对象存储上的文档
      • PageOffice控件铺满整个页面
      • 加盖印章和签字功能
      • Office文档在线预览方案
      • 弹出各种样式的消息框及菜单
      • 实现POBrowser窗口内切换打开不同文件
    • Word

    • Excel

    • PDF

    • FileMaker

    • PPT

    • 更多

    目录

    POBrowser回调父页面的函数传值

    # POBrowser回调父页面的函数传值

    • 查看本示例演示效果(Windows版)
    • 查看本示例演示效果(国产版)
    • 本示例关键代码的编写位置,请参考“开始 - 快速上手”里您所使用的开发语言框架的最简集成代码

    注意

    本文中展示的代码均为关键代码,复制粘贴到您的项目中,按照实际的情况,例如文档路径,用户名等做适当修改即可使用。

    POBrowser内置的JS函数CallParentFunc用于PageOffice浏览器打开的页面(子页面)回调父页面JS函数,此功能有如下用途:

    • 可以实现子页面调用父页面的JS函数;
    • 可以实现子页面给父页面传参;
    • 可以实现子页面更新父页面的局部状态信息;
    • 可以实现子页面刷新整个父页面等功能。

    CallParentFunc回调函数原型:

    // FuncName:自定以函数名。此函数有且只能有一个字符串参数。
    // paramJson:json字符串,用于回调时传递参数。
    function FuncName(paramJson){
    	// 此处编写您的js代码
    
    	return '';// 返回值为字符串类型
    }
    

    # 后端代码

    本示例无后端关键代码。

    # 前端代码

    例如:调用openWindow的页面(父页面)有一个计数器,每次点击子页面中的按钮都回调父页面函数使得这个计数器的值+1。

    1. 父页面代码。

    首先,在页面添加一个input用来展示数据;

    <div>Count=<input v-model="CountValue" /></div>
    

    然后,定义一个updateCount函数增加计数;

    // 定义给子页面回调的函数
    updateCount(paramJson) {
    	let pJson = JSON.parse(paramJson);
    	let num = pJson.num;//获取到参数 num
    	let count = parseInt(this.CountValue);
    	this.CountValue = count + num;
    	return this.CountValue.toString();
    }
    
    1. 将当前页面中定义的updateCount函数挂载到window对象上。

      • 如果是vue项目需要执行下面的代码,:
      mounted: function () {
          window.POPageMounted = this;
      }
      
      • 如果是vue3项目需要执行下面的代码:
      onMounted(() => {
          window.POPageMounted = { updateCount };
      });
      
    2. 接着上述步骤,子页面(POBrowser打开的页面)按钮点击时,通过执行下面的increaseCount函数回调父页面的updateCount函数。

    increaseCount(value) {
    	let pJson = {}; // 使用json对象传递参数
    	pJson.num = value; //传递参数 num
    	let pstr = JSON.stringify(pJson);
    
    	window.CallParentFunc({
    		funcName: 'updateCount', //回调父页面的函数名
    		paramJson: pstr, //传递参数
    		success: function (strRet) { //回调成功,获取回调函数的返回值
    			alert("现在父窗口Count的值为:" + strRet);
    		},
    		error: function (strErr) {
    			if(strErr.indexOf('parentlost')>-1){
    				alert('父页面关闭或跳转刷新了,导致父页面函数没有调用成功!');
    				return;
    			}
    		}
    	});
    }
    
    上次更新: 2024/08/02, 14:05:42
    PageOffice | Copyright © 2013-2026 卓正软件 京ICP备12010902号-2 京公网安备 11010502019270号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式