【发布时间】:2016-01-11 20:59:17
【问题描述】:
我想实现一个按钮来仅打印页面的某个 div,同时让用户可以打印整个页面。我正在将此代码用于打印样式表,到目前为止效果很好:Print <div id=printarea></div> only?
现在我正在做的是包括一个单独的样式表,它只包含此处建议的打印配置:https://stackoverflow.com/a/18497062/5775547,并在我的按钮的 onclick 功能中切换包含我的 @media 打印的样式表:
function handlePrintRouteInstructionsClick() {
routeInstructions.show();
$('link[id="printCss"]').prop("href", "css/printRouteInstructions.css");
window.print();
$('link[id="printCss"]').prop("href", "");
}
css 是这样包含的:
<link rel="stylesheet" type="text/css" href="" id="printCss" media="print"/>
现在当我按下按钮时,它仍然会打印整个页面。有趣的是,当第二次按下按钮时,它按预期工作,只打印指定的 div。由 Ctrl+P 触发的对话仍然会打印整个页面,因为它应该。 任何想法为什么这在第一次按下按钮时无法正常工作?
【问题讨论】:
-
为什么不直接使用 CSS 媒体查询? developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/…
-
我想我只是没有理由制作单独的样式表并交换它们。打印媒体查询将仅在打印页面时处于活动状态。
-
是的,这就是问题所在。在用户按下按钮以打印该特定容器(routeInstructions)后,我需要它处于活动状态。但当用户尝试打印整个页面时,它不应该处于活动状态。我会看看你的链接,谢谢。
-
您是否有指向您正在尝试此操作的页面的链接?
-
仅适用于最新的稳定版本 - openrouteservice.org 。我目前正在使用本地服务器。
标签: javascript jquery html css printing