vue element 如何打印弹窗里的内容?

发布于 2022-09-07 09:10:31 字数 662 浏览 14 评论 0

用vue-element里的dialog组件,在弹窗内显示一个表单,并用一个打印按钮,打印该表单。
打印用了window.print()这个方法。
因为只打印页面中弹窗内的部分,所以将id为dialogContent的div替换了原body的innerHTML,打印后再替换为原本的body,代码如下:

var oldHtml = document.body.innerHTML;
document.body.innerHTML = document.getElementById("dialogContent").innerHTML;
window.print();
document.body.innerHTML = oldHtml;

网上的这个方法,遇到两个问题
1、第一次能打开打印界面,但是关闭后,就无法第二次打开了,而且页面也无法进行任何操作。
2、并且由于表单宽度问题,表单的内容,右边的一半没有被显示在打印界面。

这是打印界面显示的样子,右侧的一半被砍掉了、、

请问该怎么解决??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

往事风中埋 2022-09-14 09:10:31

innerHMTL会造成绑定丢失,可以window.open(''),写入document.write(dialogdome)打开新页面来打印,就是体验...,
或者尝试将其它元素隐藏

温折酒 2022-09-14 09:10:31

请问后续如何解决?我目前打印也是打印不全

野稚 2022-09-14 09:10:31

楼主,请问最后是怎么解决的呢?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文