js打印,其实是打印当前页面的内容,是调用 系统的js方法,来弹出 打印设置窗口,用法很简单。

window.print()就行,有的考虑到 浏览器兼容性问题,会用到document.execCommand("print")

function jsPrint(){
if (typeof (getBrowerType().ie) != "undefined") {//浏览器判断
document.execCommand('print');//弹出打印设置窗口
} else {
window.print();//弹出打印设置窗口
}
}); function getBrowerType() {
var sysType = {};
var ua = navigator.userAgent.toLowerCase();
var matchs;
(matchs = ua.match(/msie ([\d.]+)/)) ? sysType.ie = matchs[1] :
(matchs = ua.match(/trident\/([\d.]+)/)) ? sysType.ie = matchs[1] :
(matchs = ua.match(/firefox\/([\d.]+)/)) ? sysType.firefox = matchs[1] :
(matchs = ua.match(/chrome\/([\d.]+)/)) ? sysType.chrome = matchs[1] :
(matchs = ua.match(/opera.([\d.]+)/)) ? sysType.opera = matchs[1] :
(matchs = ua.match(/version\/([\d.]+).*safari/)) ? sysType.safari = matchs[1] : 0;
return sysType;
}

以上 就能够 弹出打印窗口,实现打印。那么如何选择性的 打印页面里的内容呢?

答案是,给不打印的内容 加上一个不显示的样式

<style media="print">//注意  要设置media="print",意思是在打印时变现的样式
.noPrint{//样式名字 随便取,你看得懂就好了
display:none;//设置为打印的时候不显示
}
</style> <div class=".noPrint">
这些不显示,可以把打印按钮放在这里
<input type="button" value="打印" onclick="jsPrint()"/>
这样,在打印的时候,这个div里面的内容就不会显示了。可以给多个元素设置noPrint样式
</div>

以下来个完整的例子:

<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
<script src="~/js/jquery-ui-1.8.20.min.js"></script>
<script type="text/javascript">
function jsPrint() {
if (typeof (getBrowerType().ie) != "undefined") {
document.execCommand('print');
} else {
window.print();
}
} function getBrowerType() {
var sysType = {};
var ua = navigator.userAgent.toLowerCase();
var matchs;
(matchs = ua.match(/msie ([\d.]+)/)) ? sysType.ie = matchs[1] :
(matchs = ua.match(/trident\/([\d.]+)/)) ? sysType.ie = matchs[1] :
(matchs = ua.match(/firefox\/([\d.]+)/)) ? sysType.firefox = matchs[1] :
(matchs = ua.match(/chrome\/([\d.]+)/)) ? sysType.chrome = matchs[1] :
(matchs = ua.match(/opera.([\d.]+)/)) ? sysType.opera = matchs[1] :
(matchs = ua.match(/version\/([\d.]+).*safari/)) ? sysType.safari = matchs[1] : 0;
return sysType;
}
</script>
<style media="print">
.noPrint { display:none;
} </style>
</head>
<body>
<div>
<table>
<thead>
<tr>
<th>星期一</th>
<th>星期二</th>
<th>星期三</th>
<th>星期五</th> </tr>
</thead>
<tr>
<td>语文</td>
<td>数学</td>
<td>英语</td>
<td>体育</td>
</tr>
<tr>
<td>语文</td>
<td>数学</td>
<td>英语</td>
<td>体育</td>
</tr>
<tr>
<td>语文</td>
<td>数学</td>
<td>英语</td>
<td>体育</td>
</tr>
<tr>
<td>语文</td>
<td>数学</td>
<td>英语</td>
<td>体育</td>
</tr> </table>
</div>
<div class="noPrint" style="border:solid 2px green">xxxxxx这些东西不要打印
<input class="noPrint" type="button" value="打印" onclick="jsPrint()" />
</div>
</body>
</html>

js打印的更多相关文章

  1. js 打印

    关于js打印很简单的一段代码 function doPrint() { var newWindow = window.open("打印窗口", "_blank" ...

  2. js打印html中的内容

    js打印方法 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. ...

  3. js打印Iframe中的内容,并且不需要预览。

    js打印Iframe中的内容,并且不需要预览 js代码如下: <script type="text/javascript" language="Javascript ...

  4. js打印保存用户输入的内容

    在用js打印局部页面时,遇到用户新输入的内容没能打印出来,经过观察,发现我采用的js打印方法是读取页面源代码,而用户输入的内容如果不将其写入到页面源代码中去,是打印不出来的,下面是我的解决方法: // ...

  5. 使用jquery.PrintArea.js打印网页的样式问题

    在使用jquery.PrintArea.js打印局部网页样式的时候,发现样式打印不出来,在网上找了好多资料,整理一下分享给大家 一.先看看css的引用文件方式 1.直接在内部的元素中使用”style” ...

  6. js打印页面指定区域,并去掉页眉上的时间和请求路径

    需要通过js打印指定页面的内容 <style media=print type="text/css"> .noprint{visibility:hidden} < ...

  7. 利用JS打印质数

    我爱撸码,撸码使我感到快乐!大家好,我是Counter,今天非常愉快,没有前几天的相对比较复杂的逻辑思维在里面,今天来写写,利用JS打印质数,基本上很多面试,会很经常的考到.那废话不多说,直接上代码: ...

  8. jquery.wordexport.js打印echarts.js画出的柱状图

    jquery.wordexport.js打印echarts.js画出的柱状图. echarts画出的图是不能直接打印出来的(echarts的柱状图是用canvas画出来的),而jquery.worde ...

  9. 使用lodop.js打印控件打印table并分页等

    import {getLodop} from '@/utils/LodopFuncs.js' //打印表格 export default{ // num 打印还是打印预览 conData 对象形式 传 ...

随机推荐

  1. 解决Sublime Text3莫名的中文乱码问题

    有好几回用Sublime Text3写着中英混杂的文字的时候,会突然就弹出警告说什么编码不行,然后点击确定后,原来的中文全都乱码了: 然后即使按ctrl+z撤回也没用,重新打开也没用,用记事本的转换a ...

  2. Python读取Excel数据并根据列名取值

    一直想将自己接触到的东西梳理一遍,可就是迈不出第一步,希望从这篇总结开始不要再做行动的矮人了. 最近测试过程中需要用到python读取excel用例数据,于是去了解和学习了下xlrd库,这里只记录使用 ...

  3. NET Core,跨平台的轻量级RPC

    NET Core,跨平台的轻量级RPC:Rabbit.Rpc 特性一览 Apache License 2.0协议开源 支持客户端负载均衡(提供了轮询.随机算法的实现) 支持ZooKeeper和文件共享 ...

  4. Spring Cache抽象详解

    缓存简介 缓存,我的理解是:让数据更接近于使用者:工作机制是:先从缓存中读取数据,如果没有再从慢速设备上读取实际数据(数据也会存入缓存):缓存什么:那些经常读取且不经常修改的数据/那些昂贵(CPU/I ...

  5. mmc一维下料例子

    数据来自维基, 长度 = 5600; l切割长度= {1380, 1520, 1560, 1710, 1820, 1880, 1930, 2000, 2050, 2100, 2140,     215 ...

  6. <jsp:include page="">和<%@include page=""%> 标签学习

    <jsp:include page=""><jsp:param value=""name=""/><DEL&g ...

  7. linux中/etc与/var目录,各是什么意思?这两个目录下的文件有什么特点?

    http://zhidao.baidu.com/link?url=DkxU9CyhJb_dIUAPCmPmxRtQsENgCzqy5qnLPEj_V9DqNzdt6Qya0U5iCVRCYFkgoRo ...

  8. gpexpand error:Do not have enough valid segments to start the array.

    gpstart error: Do not have enough valid segments to start the array. 这个时候需要检查一下shared_buffers设置改小点,就 ...

  9. Xcode5 创建模板和UIView 关联XIB

    转自:http://www.cnblogs.com/china-ldw/p/3533896.html 在做ios应用开发的过程,难免遇到要创建 子view 和 自定义view的时候,归根到底,我们需要 ...

  10. 10994 - Simple Addition(规律)

    Problem E Simple Addition Input: Standard Input Output: Standard Output Let’s define a simple recurs ...