您的位置:首页 > Web前端 > JavaScript

js iframe 打印 打印预览 页眉页脚的设置

2013-09-22 13:40 417 查看
1、window.print方式:

Html代码 //jsp页面 打印按钮:

<input type="button" value="打印" onclick="print();">
//js 中:
function print(){
window.print();
//style样式中,设置隐藏按钮打印:
<style>
@media print {
.noprint{display:none}
}
</style>

//jsp页面 打印按钮:
<input type="button" value="打印" onclick="print();">
//js 中:
function print(){
window.print();
//style样式中,设置隐藏按钮打印:
<style>
@media   print   {
.noprint{display:none}
}
</style>

打印iframe:

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>标题页</title>
<body>
<input onclick='prn()' type=button value=print_Iframe><br>

<iframe id=myframe src="http://www.baidu.com"></iframe>

<script>
function prn()
{
var win=window.open("about:blank") //打开一个空页面
win.moveTo(100,100) //移动到指定位置
win.location=document.all.myframe.src //指定页面的内容
win.print() //打印页面
}
</script>
</body>
</html>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>标题页</title>
<body>
<input onclick='prn()' type=button value=print_Iframe><br>
<iframe id=myframe src="http://www.baidu.com"></iframe>
<script>
function prn()
{
var win=window.open("about:blank")       //打开一个空页面
win.moveTo(100,100)    //移动到指定位置
win.location=document.all.myframe.src    //指定页面的内容
win.print()            //打印页面
}
</script>
</body>
</html>


2,WebBrowser控件方式

页面上加上代码

Html代码

<object ID="WebBrowser" name="WebBrowser" WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></object>

<object ID="WebBrowser" name="WebBrowser" WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></object>


js:函数中加入代码:

Js代码

WebBrowser.ExecWB(6,1); //打印设置 WebBrowser.ExecWB(8,1); //打印预览 WebBrowser.ExecWB(7,1); 关于这个组件还有其他的用法,列举如下: WebBrowser.ExecWB(1,1) 打开 WebBrowser.ExecWB(2,1) 关闭现在所有的IE窗口,并打开一个新窗口 WebBrowser.ExecWB(4,1) 保存网页 WebBrowser.ExecWB(6,1) 打印 WebBrowser.ExecWB(7,1) 打印预览 WebBrowser.ExecWB(8,1) 打印页面设置 WebBrowser.ExecWB(10,1) 查看页面属性 WebBrowser.ExecWB(15,1) 好像是撤销,有待确认 WebBrowser.ExecWB(17,1) 全选 WebBrowser.ExecWB(22,1) 刷新 WebBrowser.ExecWB(45,1) 关闭窗体无提示

WebBrowser.ExecWB(6,1);
//打印设置
WebBrowser.ExecWB(8,1);
//打印预览
WebBrowser.ExecWB(7,1);
关于这个组件还有其他的用法,列举如下:
WebBrowser.ExecWB(1,1) 打开
WebBrowser.ExecWB(2,1) 关闭现在所有的IE窗口,并打开一个新窗口
WebBrowser.ExecWB(4,1) 保存网页
WebBrowser.ExecWB(6,1) 打印
WebBrowser.ExecWB(7,1) 打印预览
WebBrowser.ExecWB(8,1) 打印页面设置
WebBrowser.ExecWB(10,1) 查看页面属性
WebBrowser.ExecWB(15,1) 好像是撤销,有待确认
WebBrowser.ExecWB(17,1) 全选
WebBrowser.ExecWB(22,1) 刷新
WebBrowser.ExecWB(45,1) 关闭窗体无提示

这种方式打印iframe:

window.parent.document.i1.window.WebBrowser.ExecWB(6, 1);

选择你要的功能。

但是打印是会把整个页面都打印出来的,页面里面有什么东西就打印出来,我们有时候只需要打印数据表格,这时我们就要写一个样式了:把不想打印的部份隐藏起来:

样式内容:

Html代码

<SPAN style="BACKGROUND-COLOR: #ffffff; WHITE-SPACE: normal"><style type="text/css" media=print></SPAN>

<style type="text/css" media=print>


Html代码

.noprint...{display : none }
</style>

.noprint...{display : none }
</style>

3,打印iframe 中的内容:

主要语句:document.all.iframename.ExecWB(6,1); 便可以只打印iframe中的页面。

document.all.iframename.ExecWB(7,1); 打印预览

…………

使用这种方式打印不需要加:<object ID='WebBrowser' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></object>

例如:

Js代码

function printPage()
{
PageSetup_Null() ;
document.all.iframename.ExecWB(6,1);

}

//打印预览
function printPreview()
{

document.all.iframename.ExecWB(7,1);

}

function printPage()
{
PageSetup_Null()   ;
document.all.iframename.ExecWB(6,1);

}

//打印预览
function printPreview()
{

document.all.iframename.ExecWB(7,1);

}


Js代码



Js代码

//设置网页打印的页眉页脚为空
function PageSetup_Null()
{
try{
var Wsh=new ActiveXObject("WScript.Shell");
Wsh.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\PageSetup\\header",""); //通过修改注册表的方式 页眉和页脚也可以改成你想要的内容

Wsh.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\PageSetup\\footer","");
}catch(e){
alert(e.name+e.message);
}
}

//设置网页打印的页眉页脚为空
function PageSetup_Null()
{
try{
var Wsh=new ActiveXObject("WScript.Shell");
Wsh.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\PageSetup\\header","");  //通过修改注册表的方式 页眉和页脚也可以改成你想要的内容
Wsh.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\PageSetup\\footer","");
}catch(e){
alert(e.name+e.message);
}
}


通过:document.all.iframe.***的方式打印 不仅可以只打印本页面中的iframe 还可以多层嵌套找到要打印的iframe

例如:

first.html

Html代码

<body>
firstpage <input type="button" onclick="printPreview()" value="打印预览">
<input type="button" onclick="printPage()" value="打印">
lt;br/>

<iframe name="iframe" width="500"style="height:400" src="secend.html"></iframe>
</body>

<body>
firstpage  <input type="button" onclick="printPreview()" value="打印预览">
<input type="button" onclick="printPage()" value="打印">
<br/>

<iframe name="iframe" width="500"style="height:400" src="secend.html"></iframe>
</body>


secend.html

Html代码

<body style="background-color:#888">
secendpage
<br/>

<br/>
<iframe name="i1" src="third.html"></iframe>
<iframe name="i2" src="thirdd.html"></iframe>
<br>
</body>

<body style="background-color:#888">
secendpage
<br/>

<br/>
<iframe name="i1" src="third.html"></iframe>
<iframe name="i2" src="thirdd.html"></iframe>
<br>
</body>


third.html: 随意吧

js:

Js代码

//打印 function printPage() { //页眉页脚空…… 这里没写了 iframe.document.all.i1.ExecWB(6, 1); " } //打印预览 function printPreview() { iframe.document.all.i1.ExecWB(7, 1); }

//打印
function printPage()
{       //页眉页脚空……  这里没写了
iframe.document.all.i1.ExecWB(6, 1); "

}

//打印预览
function printPreview()
{

iframe.document.all.i1.ExecWB(7, 1);

}


于是 以此类推: 就可以实现任意的iframe嵌套打印和打印预览问题了

例如从子页面找父页面打印也可:window.parent.document.all.i1.ExecWB(6, 1);

符号 含义

&w 网页标题

&u 网页地址 (URL)

&d 短日期格式(由“控制面板”中的“区域设置”指定)

&D 长日期格式(由“控制面板”中的“区域设置”指定)

&t 由 “控制面板”中的“区域设置”指定的时间格式

&T 24 小时时间格式

&p 当前页码

&P 总页数

&b 文本右对齐(请把要右对齐的文字放在“&b”之后)

&b&b 文字居中(请把要居中的文字放在“&b”和“&b” 之间)

&& 单个 & 号 (&)

Wsh.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\PageSetup\\header","&b页眉&b"); //设置页眉居中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: