找回密码
 立即注册

QQ登录

只需一步,快速开始

Joestar.Xu SpreadJS 开发认证
超级版主   /  发表于:2024-4-29 13:52  /   查看:1001  /  回复:0
本帖最后由 Joestar.Xu 于 2024-4-29 13:54 编辑

在设计器中(V17.0.8),如果我们要显示打印界面,需要先点击“文件”按钮,再点击“打印”选项卡才能看到打印的效果,但是这样有些麻烦,而且会显示左侧的选项列表,如果仅仅只是想要显示打印的预览效果,要怎么实现呢?

image.png604459228.png


实际上,在设计器中并没有相关的接口可以直接实现,但是我们可以通过DOM操作来实现这样的需求,在附件的Demo中有两个按钮,Modify按钮将直接显示打印界面,且不会显示左侧的选项卡。


image.png46103819.png

Modify2按钮则会返回到设计器的编辑界面。

具体实现的代码因为高度依赖于DOM结构,所以在将来的版本中不排除可能出现变动的可能,请各位同学结合实际情况判断,本文仅提供一个简单的实现思路:

  1. const styleElement = document.createElement("style");
  2. document.querySelector("#button1").addEventListener("click", function () {
  3.   styleElement.textContent = `
  4.       .gc-file-menu-category.gc-container {
  5.         display: none !important;
  6.       }
  7.       .category-content-container.gc-flex-component.flex-stretch {
  8.         display: none !important;
  9.         left: 0 !important;
  10.       }
  11.     `;
  12.   document.head.appendChild(styleElement);

  13.   document.querySelector(".fileButton").click();

  14.   setTimeout(() => {
  15.     styleElement.textContent = `
  16.         .gc-file-menu-category.gc-container {
  17.           display: none !important;
  18.         }
  19.         .category-content-container.gc-flex-component.flex-stretch {
  20.           left: 0 !important;
  21.         }
  22.       `;

  23.     document
  24.       .querySelector(
  25.         "div.gc-flex-component.flex-default > div > div:nth-child(8) > div > div > div"
  26.       )
  27.       .click();
  28.   }, 100);
  29. });

  30. document.querySelector("#button2").addEventListener("click", function () {
  31.   document.querySelector(".gc-image-button").click();

  32.   document.head.removeChild(styleElement);
  33. });
复制代码


具体Demo请参考附件。

一键显示打印页面.js

1.5 KB, 下载次数: 366

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部