重复问题
- 我搜索了现有的问题
最新版本
- 我测试了最新版本
总结 💡
在我的应用程序中,我支持浅色和深色主题。
当我使用 window.print()
启动打印时,无论当前显示的主题是浅色还是深色,我都希望使用默认的浅色主题。
我尝试通过使用 useMediaQuery('print')
并将主题设置为浅色来解决这个问题,但它只对 window.print()
有效,对 Ctrl+P
没有效果。
我还尝试了实验性的 CssVariables 颜色模式,如果你能添加指定媒体属性以注入全局样式表的能力,这可能会解决问题。
示例 🌈
- 无响应*
动机 🔦
在深色主题上打印页面是没有意义的,因为你会用很多墨水来打印。
3条答案
按热度按时间lxkprmvk1#
我还尝试了
beforeprint
和afterprint
事件,结合了ReactDOM.flushSync
API,但这会产生意外的效果:Chrome:在打印预览窗口出现并关闭之前,实际页面也会将主题更改为浅色
Safari:打印预览窗口关闭后,主题 Flink
理想情况下,这些
@media print { }
样式应该已经存在于页面上。up9lanfz2#
你能在CodeSandbox上分享一个最小复制品吗?
xpszyzbs3#
以下是翻译结果:
@siriwatknp 这里是复制的文本:
https://codesandbox.io/s/keen-cache-hwycmz
如果你点击打印按钮,颜色仍然是绿色,但如果你按下“Ctrl + P”,它会变成红色。
为了检查“Ctrl+P”的情况,在这里测试更容易:https://hwycmz.csb.app/