好的,我有这个样式表切换器只有在我从样式表链接中省略 media =“print”时才能使用。
我想知道如何在不遗漏 media =“print”属性的情况下解决此问题。
这是PHP代码。
<!-- Print Script -->
<?php if (isset($_GET['css']) && $_GET['css'] == 'print') { ?>
<meta name="robots" content="noindex" />
<link rel="stylesheet" type="text/css" href="http://localhost/styles/print.css" media="print" />
<script type="text/javascript">
//<![CDATA[
if(window.print())
onload = window.print();
else
onload = window.print;
//]]>
</script>
<?php } else { ?>
<link rel="stylesheet" type="text/css" href="http://localhost/styles/style.css" media="screen" />
<?php } ?>
<!-- End Print Script -->
以下是您点击更改样式表的链接。
<a href="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>?css=print" id="print-page" title="Print">Print This Page</a>
答案 0 :(得分:2)
您不需要PHP代码来确定是否输出用于打印的CSS文件。默认情况下,浏览器不会呈现“打印”样式表,并且在打印时应忽略“屏幕”样式表。
可能存在一些渲染问题:浏览器可能没有足够的时间来渲染页面并将其正确地提供给打印机。
简化的解决方案是:
<head>
<link rel="stylesheet" type="text/css" href="http://localhost/styles/print.css" media="print" />
<link rel="stylesheet" type="text/css" href="http://localhost/styles/style.css" media="screen" />
<script type="text/javascript">
function print_it() {
if(window.print())
onload = window.print();
else
onload = window.print;
}
</script>
</head>
<body>
<a href="javascript:print_it();" id="print-page" title="Print">Print This Page</a>
</body>