JavaScript代码窗口.print()可以打印当前HTML页面。
如果我在HTML页面中有一个div(例如,从ASP.NET MVC视图呈现的页面),那么我只想打印div。
是否有任何jQuery unobtrusive JavaScript或普通JavaScript代码来实现此请求?
更清楚地说,假设呈现的HTML页面是这样的:
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head" runat="server">
<title>
<asp:ContentPlaceHolder runat="server" ID="TitleContent" />
</title>
</head>
<body>
<div id="div1" class="div1">....</div>
<div id="div2" class="div2">....</div>
<div id="div3" class="div3">....</div>
<div id="div4" class="div4">....</div>
<div id="div4" class="div4">....</div>
<p>
<input id="btnSubmit" type="submit" value="Print" onclick="divPrint();" />
</p>
</body>
</html>
字符串
然后我想点击打印按钮,只打印div3。
7条答案
按热度按时间rggaifut1#
我会这样说:
字符串
72qzrwbm2#
沿着与一些建议相同的路线,您至少需要执行以下操作:
一个CSS的例子可以像这样简单:
字符串
然后,您的JavaScript只需要将“printable”类应用于目标div,并且在打印时,它将是唯一可见的(只要没有其他冲突的CSS规则-单独的练习)。
型
您可能希望在打印发生后从目标中删除类,和/或在打印发生后删除动态添加的CSS。
下面是一个完整的工作示例,唯一的区别是打印CSS不是动态加载的。如果你想让它真正不显眼,那么你需要像这个答案一样动态加载CSS。
型
gudnpqoy3#
尝试以下JavaScript代码:
字符串
qzlgjiam4#
字符串
对于printThis.js源代码,请在新选项卡https://raw.githubusercontent.com/jasonday/printThis/master/printThis.js中复制并粘贴以下URL
htrmnn0y5#
您可以使用打印样式表,但这将影响所有打印功能。
您可以尝试在外部拥有一个打印样式表,当按下按钮时,它通过JavaScript包含在内,然后调用
window.print()
,然后删除它。zvms9eto6#
你可以使用jquery来做这件事。
字符串
3pmvbmvn7#
我有一个问题,输入控件在打印时丢失了它们的值,所以我编写了这个代码。这一系列的函数允许你打印一些静态HTML片段或特定节点的内容,并保留输入值和功能,用类“hideToPrint”隐藏选定的元素。并提供了一个回调函数来修改打印的HTML,这样你就可以用其他方式修改它,而不会干扰原始节点。当打印对话框打开时,body看起来像你正在打印的东西。
这只在Chrome上测试过。
CSS:
字符串
JS:
型