Javascript 如何在屏幕上使用打印样式表?
我想显示我的网页的打印预览。我寻找jQuery插件来实现这一点,但它们都已经过时或未维护。我想我可以自己做(所以只有当它坏了的时候我才怪自己) 我唯一需要的是能够在屏幕上加载Javascript 如何在屏幕上使用打印样式表?,javascript,jquery,css,Javascript,Jquery,Css,我想显示我的网页的打印预览。我寻找jQuery插件来实现这一点,但它们都已经过时或未维护。我想我可以自己做(所以只有当它坏了的时候我才怪自己) 我唯一需要的是能够在屏幕上加载media=“print”和/或@media printCSS,方法是引诱浏览器,让它相信支持是纸质的 有没有办法做到这一点?类似于$.media('print') 我在项目中使用jQuery,但vanilla JS也可以。这只适用于,不适用于@media print{}: 只要您想显示网站的打印版本,就可以使用这些行 $(
media=“print”
和/或@media print
CSS,方法是引诱浏览器,让它相信支持是纸质的
有没有办法做到这一点?类似于$.media('print')
我在项目中使用jQuery,但vanilla JS也可以。这只适用于
,不适用于@media print{}
:
只要您想显示网站的打印版本,就可以使用这些行
$('link').each(function() {
if ($(this).prop('media') == '') {
$(this).prop('media', 'all')
}
switch ($(this).prop('media')) {
case 'print':
$(this).prop('media', 'screen')
break
case 'all':
// Do nothing
break
default:
// Don't display screen, speech, ...
$(this).prop('media', 'print')
break
}
})
请注意@Teemu在问题注释中指出的方式:所有单位仍将与屏幕相对,因此在纸上可能不同。您需要它的目的是什么?用于调试/开发,还是用于生产?并不是那么简单,许多CSS规则在屏幕和纸张上产生不同的样式。你需要一个特定的样式表来模拟屏幕上的纸张。@niklaz:我会将其用于制作:一个打印预览,可以由JS.New window或iframe启动,带有css副本,而不带@media print。但可维护性低。所有现代浏览器都内置了打印预览功能,对吗?因此,我想说,调用
window.print()
,并完成它…结果将比您可以做的任何事情都更接近现实-此预览将考虑自动页眉/页脚、打印背景色和禁用图像是或否以及其他设置等选项,一开始你甚至连JavaScript都无法访问…