HTML打印问题二

可以通过window.print()对当前页面进行打印,调用这个函数和点击 IE菜单栏中的“打印”作用是一样的,这个函数在调用时还会触发html的两个事件:onbeforeprint,onafterprint对于在打印时页面中不想打印的元素可以在onbeforeprint这个时间的处理函数中进行屏蔽,一般是让该元素不显示,style.display="none",onafterprint是打印后会触发的事件。

WebBrowser是IE内置的浏览器控件,无需用户下载.
一、WebBrowser控件
  <object ID='WebBrowser' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-

00C04FD705A2'></object>
二、WebBrowder控件的方法
//打印 WebBrowser1.ExecWB(6,1);
//打印设置 WebBrowser1.ExecWB(8,1);
//打印预览 WebBrowser1.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) 关闭窗体无提示

在进行打印时可能出现网页右边不能显示,好像被剪掉一样,这样网页内容显示不全,如果在你的网页中一行上出现了很多个文本输入框,而又没有设置这些文本框的宽度,那么可能出现右边显示不到,好像背剪似地,这时你可以文本框的样式做适当缩小,如果你是放在表格中,那么只需要缩小表格的宽度,然后再把文本的宽度样式设置为:style="width:100%"即可。

页眉页脚的问题:
用到active控件:
var HKEY_Root,HKEY_Path,HKEY_Key;
HKEY_Root="HKEY_CURRENT_USER";
HKEY_Path="\\Software\\Microsoft\\Internet Explorer\\PageSetup\\";
//设置网页打印的页眉页脚为空
function PageSetup_Null()
{
    try
    {
        var Wsh=new ActiveXObject("WScript.Shell");
        HKEY_Key="header";
        Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");
        HKEY_Key="footer";
        Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");
    }
    catch(e)
    {}

}
//设置网页打印的页眉页脚为默认值
function PageSetup_Default()
{
    try
    {
        var Wsh=new ActiveXObject("WScript.Shell");
        HKEY_Key="header";
        Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"&w&b页码,&p/&P");
        HKEY_Key="footer";
        Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"&u&b&d");
    }
    catch(e)
    {}

}
相应的js方法只要在打印前调用即可如:在onbeforeprint事件的处理器中调用PageSetup_Null(),然

后再onafterprint事件的处理器中调用PageSetup_Default()

你可能感兴趣的:(html,浏览器,Microsoft,IE)