使用JavaScript覆盖@media样式

时间:2017-03-28 14:06:48

标签: javascript html css

我需要从Mozilla FF保存​​到pdf屏幕网站的某些页面。但是我偶然发现了一个带有css保护的网站,它阻止了打印(因此打印到pdf):它打印空白页面。 我需要纯JavaScript,从js控制台运行以覆盖任何 @media打印样式。我尝试了几个命令但没有成功。我知道如何手动完成,但需要更简单的方法。

css样式表是

* {-moz-user-select: none;-khtml-user-select: none;-webkit-user-select: none;-ms-user-select: none;-o-user-select: none;user-select: none;}
@media print {html, body {display: none;}}

PS。对文本选择预防也很好,但不是那么重要。

1 个答案:

答案 0 :(得分:1)

一种选择是通过将<style>注入<head>来覆盖CSS,如下所示:

var override = document.createElement("style");
override.innerText = "* {user-select: auto;} @media print {html, body {  display: block; }}";
document.head.appendChild(override);

Example on Codepen(尝试使用和不使用JS的打印预览)