Web印刷時にボタンやその他の情報を隠す方法

4515 ワード

Web印刷は多くのWeb開発者を悩ませる問題です.多くの人が異なるウェブ印刷ソリューションを提案し、多くのビジネスレポートデザイナーが私たちを助けてくれました(有料で、多くの人がこのお金を使いたくないと思います)、以前もウェブ印刷ソリューションについて書いたことがあります.
本文はこの問題を議論しない.Web印刷のさまざまなソリューションに興味がある場合は、上記を読んだり、インターネットで検索したりすることができます.この方面は文章に多い.
本稿では、一般的なie印刷の場合、印刷されたレポートで私たちが見たくないものを省略し、見たいものを残し、ユーザーにとって透明であるという解決策を提供します.案は以下の通りです:まず良いプログラムを書く習慣を身につけるべきで、各部分をそれぞれ包装して、一般的にspanあるいはdivを使って、例えば:
<html>
<span id="span1">
……
</span>
<span id="span2">
……
</span>
</html>

span 2の内容を印刷したくない場合は、ページにjavascriptプログラムを追加します.
<script>
//-----             ----------
window.onbeforeprint=beforePrint;
window.onafterprint=afterPrint;
//               
function beforePrint()
{
     span2.style.display='none';
}
//                
function afterPrint()
{
    span2.style.display='';
}
</script>

これにより、ユーザがこのページを印刷すると、印刷された用紙にはspan 2の内容が見えなくなる.ユーザーはまったく感じない.
さらに上の小さな例を挙げると、私たちは少し入門することができます.私たちは合理的にページ全体を分割して包装すれば、ページ全体の印刷出力を柔軟に制御することができます.ページに印刷ボタンを設計したら、印刷
また、クエリーのテーブルの列や行を省略してもいいですか?答えは肯定的ですが、列を隠すにはもっと多くの仕事をしなければなりません.例コードは次のとおりです.
<table cellspacing="0" border="1" bordercolor="#000000" class="tableBorder2" cellpadding=0   width="100%">
      <tr height="25">
        <td valign="center" align="left" name="op_TD" width="18%" class="noticetitle" background="../../images/topbg.gif">&nbsp;  </td>        
        <td valign="center" align="left" width="12%" class="noticetitle" background="../../images/topbg.gif">&nbsp;  </td>
                                               </tr>
                        
        <tr>
         <td height="23" align="left" class="inputstyle"  name="op_TD" >
          &nbsp;<a href="cj_forward_mx.asp?cx=CCK231&cj_code=E900&cj=    &next_gx= " target="_blank">  </a>
          &nbsp;<a href="cj_forward_card.asp?cx=CCK231&to_cj_code=E900&to_cj=    &t_money=840&next_gx= " target="_blank">  </a>
          </td>
         <td height="23" align="left" class="inputstyle">
          &nbsp;CCK231</td>
    </tr>
          
        <tr>
         <td height="23" align="left" class="inputstyle"  name="op_TD" >
          &nbsp;<a href="cj_forward_mx.asp?cx=CCK231&cj_code=C430-2&cj=    &next_gx= " target="_blank">  </a>
          &nbsp;<a href="cj_forward_card.asp?cx=CCK231&to_cj_code=C430-2&to_cj=    &t_money=630&next_gx= " target="_blank">  </a>
          </td>
         <td height="23" align="left" class="inputstyle">
          &nbsp;CCK231</td>
         
        </tr>        
    <tr height="23">
                            <td colspan="2" align="right">  :907,620.00</td>
                       </tr>                  
     <tr height="30"><td align=right id="aPrint">
         <a href="#" onclick="beforePrint();window.print();afterPrint();">  </a> &nbsp;
     </td></tr></table>

このコードでは、隠したい列のtdにname=「op_TD」を追加し、次のjavascriptコードをこのページに追加することで、nameをop_TDのすべてのtdは印刷時に非表示になります.コードは次のとおりです.
<script>//-----             ----------
window.onbeforeprint=beforePrint;
window.onafterprint=afterPrint;
//               
function beforePrint()
{
    var opTDS=document.getElementsByTagName('TD');
    for(var i=0;i<opTDS.length;i++)
    {
        if(opTDS[i].name=='op_TD')opTDS[i].style.display='none';
    }
    aPrint.style.display='none';  //      
}
//                
function afterPrint()
{
    var opTDS=document.getElementsByTagName('TD');
    for(var i=0;i<opTDS.length;i++)
    {
        if(opTDS[i].name=='op_TD')opTDS[i].style.display='';
    } 
     aPrint.style.display='';   //      
}
</script>

私の上の説明を見て、私はみんなが自分の心得があると信じています.何を待っていますか.自分でやりなさい.