javascript - GetComputedStyle 到屏幕以外的其他媒体

标签 javascript jquery css

@media screen{    
    a {color:green}
}

@media print{
    a {color:red}
}

有没有一种方法可以使用 JavaScript 在打印时获取“A”元素的颜色? 普通的 getComputedStyle 仅适用于 screen 媒体。

我不想读取样式元素。我需要计算样式。

最佳答案

我开发了一个解决方案,如何删除 PRINT 媒体的所有样式。 这样打印样式将与 SCREEN 样式相同。

这使打印机的打印效果与屏幕上显示的完全一样。

console.debug('styleSheetsLength')
                $('link[media=print]').remove()
                $('link[media*=screen]').attr('media','print,screen')
                for (var x=0; x<document.styleSheets.length;x++){
                    console.groupCollapsed('styleSheet-' + x,document.styleSheets[x])
                    if(document.styleSheets[x].rules){
                        for (var i=0; i<document.styleSheets[x].rules.length;i++) {
                            console.groupCollapsed('rule-(' + x + ')-' +i +  document.styleSheets[x].rules[i])
                            console.debug(document.styleSheets[x].rules[i])
                            if(document.styleSheets[x].rules[i].media){
                                for(var j=0;j<document.styleSheets[x].rules[i].media.length;j++){
                                    if (document.styleSheets[x].rules[i].media[j].indexOf('print')>-1)
                                        document.styleSheets[x].rules[i].media.mediaText='nothing'
                                    if (document.styleSheets[x].rules[i].media[j].indexOf('screen')>-1)
                                        document.styleSheets[x].rules[i].media.mediaText='print,screen'
                                }
                            }
                            console.groupEnd();
                        }
                    }
                    console.groupEnd()
                }

关于javascript - GetComputedStyle 到屏幕以外的其他媒体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16798249/

相关文章:

javascript - 当浏览器窗口较大时,修复了定位元素与另一个元素具有相同距离的问题

javascript - 如果浏览器视口(viewport)处于特定宽度或更大,则切换 ".show"和 ".hide",条件始终为 ".show"。 (响应式/移动菜单)

javascript - 如何调用子组件的实例方法?

javascript - 单击 ul > li 仅在第一次有效

javascript - 为什么在 jQuery 回调中检查变量是否存在会导致硬异常?

javascript - Bootstrap Filestyle - 更改文件字段的按钮文本不起作用

javascript - 创建混合高度合理的标题?

Javascript:var = var = 函数

javascript - Node.js NPM 和 Typescript 无法从测试应用程序访问类函数

javascript - 删除空 <p> 的函数会删除包含内容的 <p>