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

    • 更多

    目录

    弹出各种样式的消息框及菜单

    # 弹出各种样式的消息框及菜单

    • 查看本示例演示效果

    注意

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

    PageOffice V6.3版本起,PageOffice客户端控件新增Enabled属性,对采用标准div技术实现的界面元素,如模态对话框、弹出菜单及下拉选择框,给予了更佳的支持,确保这些元素不再受控件遮蔽影响。

    <object> 标签在HTML中用于嵌入各种类型的媒体,比如Flash动画、PDF文件、Java小程序等。它是一个独立的元素,其内容通常不受页面上的CSS样式的影响,包括z-index属性。z-index属性是用来设置元素的垂直堆叠顺序的,值越大,元素在堆叠中越靠上。然而,对于<object>标签来说,由于其嵌入内容的性质,它可能不会像其他HTML元素那样响应z-index属性。PageOffice客户端控件在页面的HTML代码中也是这样的一个<object> 标签,所以在设计用PageOffice在线打开文件的网页时,就可能出现在线打开的文档遮挡了页面上其他元素的情况,尤其是当试图用div元素创建弹窗或覆盖层时,即使为这些div元素设置了较高的z-index值,PageOffice控件仍然会显示在它们上面,导致遮挡问题。根本原因是<object>标签嵌入的是浏览器插件,然而插件的渲染通常是由浏览器插件系统处理的,而不是HTML渲染引擎,这就导致了插件内容不受z-index控制。

    PageOffice V6.3版本的客户端控件提供了Enabled属性,在弹出模态对话框、弹出菜单或者下拉框的时候,通过js代码pageofficectrl.Enabled = false;设置客户端PageOffice控件不要显示在最上层,等对话框关闭或下拉菜单消失时,再通过js代码pageofficectrl.Enabled = true;恢复PageOffice控件的正常显示,完美的解决了在使用前端框架的情况下PageOffice遮挡了div技术实现的模态对话框和弹出菜单的问题。

    # 后端代码

    本示例无后端关键代码。

    # 前端代码

    比如使用vue3框架弹出对话框的代码如下:

      <script setup>
      import request from '@/utils/request';
      import { ref, onMounted } from 'vue'
      import { ElMessage } from 'element-plus';
      import { ElMessageBox } from 'element-plus';
      
      const poHtmlCode = ref('');
      const dialogTableVisible = ref(false);
      
      function dialog_open() {
      	pageofficectrl.Enabled = false;//禁用 PageOffice 控件的显示
      	dialogTableVisible.value = true;//显示对话框元素
      }
      
      function dialog_close() {
      	pageofficectrl.Enabled = true;//启用 PageOffice 控件的显示
      	dialogTableVisible.value = false;//隐藏对话框元素
      }
      
      
      function OnPageOfficeCtrlInit() {
      	// PageOffice的初始化事件回调函数,您可以在这里添加自定义按钮
      	pageofficectrl.AddCustomToolButton("弹出模态窗口", "dialog_open()", 0);
      }
      
      function openFile() {
      	return request({
      		url: '/DivMessage/Word',
      		method: 'get',
      	})
      }
      
      onMounted(() => {
      	// 请求后端打开文件
      	openFile().then(response => {
      		poHtmlCode.value = response;
      	});
      	//将需要回调的函数挂载到PageOffice控件,例如控件触发的事件、自定义按钮触发的函数。
      	window.POPageMounted = { OnPageOfficeCtrlInit,dialog_open };//其中OnPageOfficeCtrlInit必须
      
      })
      </script>
      
      <template>
      	<div class="Word">
      
      		<el-dialog v-model="dialogTableVisible" title="普通模态框" @close="dialog_close" @open="dialog_open">
      			<p>一个普通的页面层,传入了自定义的 HTML</p>
      		</el-dialog>
      
      		<!-- 此div用来加载PageOffice客户端控件,其中div的高宽及位置就决定了控件的大小及位置 -->
      		<div style="width:auto; height:900px;" v-html="poHtmlCode"></div>
      	</div>
      </template>
      
      // Make sure to add code blocks to your code group
      上次更新: 2024/07/26, 13:29:12
      PageOffice | Copyright © 2013-2026 卓正软件 京ICP备12010902号-2 京公网安备 11010502019270号
      • 跟随系统
      • 浅色模式
      • 深色模式
      • 阅读模式