html - 如何将样式/样式表应用于我用来在反应中打印特定 div 的隐藏 iframe
问题描述
我在打印我的文章时遇到这个问题标题不像我的网站那样粗体,我正在使用以下功能打印特定的 div
function closePrint(this: any) {
document.body.removeChild(this.__container__)
}
const handlePrint = () => {
let content = document.getElementById(`${notice ? "notice" : "article"}:${id}`)
let oHideFrame = document.createElement("iframe")
oHideFrame.style.position = "fixed"
oHideFrame.style.display = "block"
oHideFrame.style.visibility= "hidden"
oHideFrame.style.right = "0"
oHideFrame.style.bottom = "0"
oHideFrame.style.width = "0"
oHideFrame.style.height = "0"
oHideFrame.style.border = "0"
document.body.appendChild(oHideFrame)
// oHideFrame.onload = setPrint
let pri = oHideFrame.contentWindow
if (pri) {
pri.document.open()
if (content) {
pri.document.write(content.innerHTML)
pri.document.close()
pri.onbeforeunload = closePrint
pri.onafterprint = closePrint
pri.focus()
pri.print()
}
}
}
我的文件夹结构如下所示
├───api
├───components
│ ├───singleArticle
├───style
│ ├───components
│ └───pages
└───utils
如何将样式或样式表应用到我的 iframe,以便我打印的 div 看起来与它在我的网站中的显示方式完全相同。如果这不可能,请提供替代解决方案。谢谢你
编辑 1:我听说对打印包做出反应是一个很好的解决方案,有没有人有使用它的经验,所以当我打印它时,它也会加载我的 CSS https://github.com/gregnb/react-to-print
解决方案
推荐阅读
- c++ - 另一个线程中的信号函数开始工作
- java - 我想把这个SQL变成QueryDsl,我该怎么办?
- vue.js - 更新 vue.js 中的变量
- python - __setattr__ 和 __dict__ 之间的区别
- javascript - 访问打开新标签的标签
- httplib - 找不到模块错误:没有名为 httplib 的模块
- javascript - 为什么当我单击“隐藏”或“显示”按钮时标签“p”不向下滑动
- javascript - 单个标签中的两个输入的焦点问题
- amazon-web-services - 我们计算的请求签名与您提供的签名不匹配。我正在尝试使用无服务器部署 aws lambda
- reactjs - 如何阻止 Formik Validation 在 ComponentDidMount 上进行验证?