JSP页面打印技术实战与技巧分享
需积分: 50 103 浏览量
更新于2024-09-11
收藏 5KB TXT 举报
"本文档总结了在JSP页面中实现打印功能的各种方法,包括简单实用的JavaScript函数和针对不同浏览器的兼容性处理。通过这些方法,开发者可以方便地控制页面内容的打印,例如选择打印特定区域或设置打印样式。"
在JSP页面中,我们经常需要为用户提供打印功能,以便他们能够将页面内容以纸质形式保存或分享。以下是一些在JSP页面中实现打印的方法:
1. JavaScript函数实现打印:
- `PrintTable` 函数是一个简单的示例,它用于打印页面中某个ID指定的元素内容。通过获取页面body的innerHTML,替换为需要打印的元素内容,调用`window.print()`进行打印,最后再恢复body的原始内容。例如:
```javascript
function PrintTable(Id) {
var mStr = window.document.body.innerHTML;
var mWindow = window;
window.document.body.innerHTML = Id.innerHTML;
mWindow.print();
window.document.body.innerHTML = mStr;
}
```
这样,当用户点击按钮时,只打印指定ID(如`<div id="dy">...</div>`)内的内容。
2. 针对IE的打印样式处理:
在Internet Explorer中,可以通过写入特定的CSS样式来隐藏非打印内容。这段代码会添加一个针对打印媒体(`media="print"`)的样式,使类名为`noPrint`的元素在打印时不可见:
```javascript
with(document) {
write("<style type=\"text/css\" media=\"print\">");
write(".noPrint { visibility: hidden }");
write("</style>");
}
```
3. ActiveXObject实现打印预览和设置:
对于IE浏览器,可以使用ActiveXObject与Word对象(`CLSID:8856F961-340A-11D0-A96B-00C04FD705A2`)交互来实现打印预览和打印设置。例如:
```javascript
function doPrintSetup() {
WB.ExecWB(8, 1); // 打印设置
}
function doPrintPreview() {
WB.ExecWB(7, 1); // 打印预览
}
```
4. 通用的打印函数:
除了针对IE的解决方案,还可以使用通用的JavaScript函数`window.print()`来直接触发打印操作:
```javascript
function doPrint() {
window.print(); // 直接打印当前页面
}
```
5. 打印工具栏展示:
为了提供更好的用户体验,可以在页面中创建一个打印工具栏,包含返回、预览和打印按钮:
```javascript
function showPrintBar() {
with(document) {
write("<div align=\"center\" class=\"noPrint\">");
write("<input type=\"button\" name=\"doBack\" value=\"<<\" onClick=\"history.go(-1)\">");
write("<input type=\"button\" name=\"doPrintPreview\" onClick=\"WB.ExecWB(8,1)\" value=\"打印预览\">");
write("<input type=\"button\" name=\"doPrint\" value=\"打印>>\" onClick=\"doPrint()\">");
write("</div>");
}
}
```
这段代码会在页面中插入一个包含三个按钮的div,用户可以方便地进行页面操作。
通过这些方法,开发者可以根据实际需求组合使用,实现JSP页面的灵活打印功能,同时考虑不同浏览器的兼容性问题。记住,对于其他非IE浏览器,可能需要使用不同的技术,如`@media print` CSS规则或现代JavaScript API(如`window.matchMedia`)来实现类似的功能。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2012-08-12 上传
2022-01-20 上传
2011-07-04 上传
2011-06-29 上传
2010-06-01 上传
2016-12-07 上传
niexiangge
- 粉丝: 0
- 资源: 1
最新资源
- C语言数组操作:高度检查器编程实践
- 基于Swift开发的嘉定单车LBS iOS应用项目解析
- 钗头凤声乐表演的二度创作分析报告
- 分布式数据库特训营全套教程资料
- JavaScript开发者Robert Bindar的博客平台
- MATLAB投影寻踪代码教程及文件解压缩指南
- HTML5拖放实现的RPSLS游戏教程
- HT://Dig引擎接口,Ampoliros开源模块应用
- 全面探测服务器性能与PHP环境的iprober PHP探针v0.024
- 新版提醒应用v2:基于MongoDB的数据存储
- 《我的世界》东方大陆1.12.2材质包深度体验
- Hypercore Promisifier: JavaScript中的回调转换为Promise包装器
- 探索开源项目Artifice:Slyme脚本与技巧游戏
- Matlab机器人学习代码解析与笔记分享
- 查尔默斯大学计算物理作业HP2解析
- GitHub问题管理新工具:GIRA-crx插件介绍