javascript 打印内容方法小结

  一般打印就用window.print();就OK了

  但是一般都是选择性打印所以会调用方法:

  

复制代码 代码如下:

  function preview()

  {

  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();

  }

  问题又来了~

  会有页脚和页眉~还有横向和纵向之分~

  怎么办?

  最好就是用到打印预览~

  因为它里面有设置

  这时必须引用IE的一个控件"WebBrowser"

  在页面里引用:

  <object id="WebBrowser" width=0 height=0 classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2">

  </object>

  其控件方法:

  

复制代码 代码如下:

  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) 关闭窗体无提示

  示例:

  <object id="WebBrowser" width="0" height="0" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2">

  打印测试

  <input type="button" onclick="WebBrowser.ExecWB(7,1)" value="打印预览">

  随便用个文本文件复制粘贴~改后缀名~

  ie运行~点预览~设置打印~打印~OK

  然后再把其考到项目里~比如aspx里

  同样运行,点预览~

  咦~怎么出现ie安全警告"internet explorer"已阻止此站点用不安全方式使用ActiveX控件"

  这时就要改ie的安全设置了(如果没装补丁就没事~那是你"rp"好,不一定客户和其他的人的"rp"和你一样好)

  操作:

  主菜单"工具"——Internet选项——安全——自定义级别, 将"安全设置"中"对没有标记为安全的ActiveX"控件进行初始化和脚本运行由"禁用"改为"启用"

  另一种方法,"工具" "Internet选项" "受信任的站点(可信站点)""站点",然后填入网址即可,如果这个网站不是以https:连接的把下面"对该区域中的所有站点要求服务器验证(https:)"前面的勾去掉即可。

  (如果是局域网:那就是 "工具" "Internet选项" "本地Internet" "高级")

  (无线网貌似不是局域网的)

  推荐第二种~

  万事俱备~ok了~

  打印方法集(没有一一测试):

  

复制代码 代码如下:

  --------------------------------------------------------------------------

  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

  <HTML>

  <HEAD>

  <TITLE> New Document </TITLE>

  <META NAME="Generator" CONTENT="EditPlus">

  <META NAME="Author" CONTENT="">

  <META NAME="Keywords" CONTENT="">

  <META NAME="Description" CONTENT=""><script>

  var hkey_root,hkey_path,hkey_key

  hkey_root="HKEY_CURRENT_USER"

  hkey_path="file://software//Microsoft//Internet Explorer\\PageSetup\\"

  //设置网页打印的页眉页脚为空

  function pagesetup_null(){

  try{

  var RegWsh = new ActiveXObject("WScript.Shell")

  hkey_key="header"

  RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"")

  hkey_key="footer"

  RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"")

  }catch(e){}

  }

  //设置网页打印的页眉页脚为默认值

  function pagesetup_default(){

  try{

  var RegWsh = new ActiveXObject("WScript.Shell")

  hkey_key="header"

  RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"&w&b页码,&p/&P")

  hkey_key="footer"

  RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"&u&b&d")

  }catch(e){}

  }

  function setdivhidden(id){//把指定id以外的层统统隐藏

  var divs=document.getElementsByTagName("DIV");

  for(var i=0;i<divs.length;i++)

  {

  if(divs.item(i).id!=id)

  divs.item(i).style.display="none";

  }

  }

  function setdivvisible(id){//把指定id以外的层统统显示

  var divs=document.getElementsByTagName("DIV");

  for(var i=0;i<divs.length;i++)

  {

  if(divs.item(i).id!=id)

  divs.item(i).style.display="block";

  }

  }

  function printpr() //预览函数

  {

  pagesetup_null();//预览之前去掉页眉,页脚

  setdivhidden("div1");//打印之前先隐藏不想打印输出的元素

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

  document.body.insertAdjacentHTML('beforeEnd', WebBrowser);//在body标签内加入html(WebBrowser activeX控件)

  WebBrowser1.ExecWB(7, 1);//打印预览

  WebBrowser1.outerHTML = "";//从代码中清除插入的html代码

  pagesetup_default();//预览结束后页眉页脚恢复默认值

  setdivvisible("div1");//预览结束后显示按钮

  }

  function print() //打印函数

  {

  pagesetup_null();//打印之前去掉页眉,页脚

  setdivhidden("div1"); //打印之前先隐藏不想打印输出的元素

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

  document.body.insertAdjacentHTML('beforeEnd', WebBrowser);//在body标签内加入html(WebBrowser activeX控件)

  WebBrowser1.ExecWB(6, 1);//打印

  WebBrowser1.outerHTML = "";//从代码中清除插入的html代码

  pagesetup_default();//打印结束后页眉页脚恢复默认值

  setdivvisible("div1");//打印结束后显示按钮

  }

  </script>

  <body>

  <div id=div0>

  <input type=button value=打印预览 onclick="printpr()">

  <input type=button onClick="print()" value="打印">

  表格一:

  </div>

  <div id=div1>

  <table>

  <tr><td>1111</td><td>1111</td><td>1111</td></tr>

  <tr><td>1111</td><td>1111</td><td>1111</td></tr>

  <tr><td>1111</td><td>1111</td><td>1111</td></tr>

  </table>

  </div>

  </body>

  </HTML>

  ----------------------------------------------------------------------------

  JS实现局部打印和预览:

  第一种:

  JS 实现简单的页面局部打印

  

复制代码 代码如下:

  function preview(oper)

  {

  if (oper < 10){

  bdhtml=window.document.body.innerHTML;//获取当前页的html代码

  sprnstr="<!--startprint"+oper+"-->";//设置打印开始区域

  eprnstr="<!--endprint"+oper+"-->";//设置打印结束区域

  prnhtml=bdhtml.substring(bdhtml.indexOf(sprnstr)+18); //从开始代码向后取html

  prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));//从结束代码向前取html

  window.document.body.innerHTML=prnhtml;

  window.print();

  window.document.body.innerHTML=bdhtml;

  } else {

  window.print();

  }

  }