如何在屏幕上使用打印样式表?

时间:2019-04-01 10:21:04

标签: javascript jquery css

我想显示我的网页的打印预览。我寻找jQuery插件来做到这一点,但它们都已过时或未维护。我以为自己可以做(所以我只能怪自己如果 什么时候坏了)。

我唯一需要做的就是通过吸引浏览器并使它以某种方式认为支持是纸制的,从而在屏幕上加载media="print"和/或@media print CSS。

有没有办法做到这一点?像$.media('print')一样?

我在项目中使用的是jQuery,但是香草JS也可以。

1 个答案:

答案 0 :(得分:0)

这仅适用于<link ... media="print">,不适用于@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如何在问题注释中指出:所有单位仍将相对于屏幕,因此在纸上可能会有所不同。