急救,如何实现用javascript打印出
请问如何实现 用js 打印出 div id="print" 中的内容?谢谢
[quote]
以前用户在打印网页内容时,一般直接选择IE的打印功能就行。有的WEB页面上也有“打印此文档”的链接功能,引用的也是“window.print();”,类似于手工打印页面。
一般我们用到网页的打印,都仅对页面上的主要内容感兴趣,一些相关的广告图片、无用的文字信息等都可以排除。如果需要实现这样的效果,则使用上面的方法肯定是不可取的。上次我在写域名查询的时候,使用了XML,同时处理查询反馈信息是进行截取的方法,即仅对有用处的信息进行读取。其实网上那些所谓的“ 小偷程序”也是这样的原理。借助这样的思路,我尝试着对网页打印也进行“截取”处理一下了。当然,也是针对网页的HTML源代码进行操作了,方法如下:
1、在页面的代码头部处加入JavaScript:
function doPrint() { bdhtml=window.document.body.innerHTML; sprnstr="<!--startprint-->"; eprnstr="<!--endprint-->"; prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17); prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr)); window.document.body.innerHTML=prnhtml; window.print(); }2、在页面正文处加上<!--startprint-->与<!--endprint-->标识。也就是在需要用户打印保存的正文所对应的html处附加上。
3、截取内容部分已完成,现在加个“打印”的链接:打印教程
[color=red]当然,如果直接手工让浏览器打印的话,这个功能是根本不会实现的。[/color]
[/quote]
qing520shan,也请你参考这个:
[url]http://www.mam5.cn/post/33.html[/url]
document.getElementById("print").innerHTML
首先设定一个样式..注意这里style标签中的media属性..它说明只有在打印的时候,其中的css样式才会起作用.
.doPrint{display:block;}; .noPrint{display:none;};然后在页面中..将所有不打印的元素的class属性设置为noPrint.
将需要打印的元素class属性设置为doPrint
在打印的时候.直接调用window.print();方法.那些属性为noPrint的元素就不会打印.只会打印出doPrint修饰的属性.
写的时候没注意..
上面的doPrint属性不需要.
只要用[code="html"]
<br> .noPrint{display:none;}<br> [/html]然后将所有不需要打印的元素的css样式设置为noPrint.再调用window.print()方法就可以打印了.