【发布时间】:2021-12-03 16:32:22
【问题描述】:
我正在制作需要下载的文凭。
所以我制作了特定的 vue 组件(文凭本身),它在 dom 中但用 v-show 隐藏(显示:无)。
现在我只需要打印该特定组件(或另存为 pdf),而不是整个页面。
所以我无法启动 window.print(),但我需要以某种方式对特定组件进行沙箱处理,所以我想我可以使用隐藏的 iframe 并在那里加载组件并在iframe.contentWindow.print() 上启动打印。
一个问题是我看不到如何在 iframe 中加载组件。
一种方法是使用类似的东西
iframe.srcdoc = downloadRef.value.$el.innerHTML;
但我没有这种样式。
我也尝试了一些类似的东西
iframe.srcdoc = ` ${css} ${downloadRef.value.$el.innerHTML}`;
其中 css 是带有样式的样式标记字符串,但同样并非所有样式都适用。
有没有其他方法可以将 vue 组件加载到 iframe 中并渲染它(自然地使用 vue),或者有没有其他方法可以在完全不使用 iframe 的情况下使某些组件在应用所有必要样式的情况下可打印?
提前致谢。
【问题讨论】:
标签: javascript html css vue.js iframe