web局部打印、去页眉页尾、兼容IE、Firefox、Chrome

这两天需要用到的几个功能。

其中之一呢,就有局部打印,局部打印以前就做过了,不过还是有缺陷的,那就是不能去掉页眉页末。

这次能,就一并解决掉了。

 

主要思路:

首先区分游览器,我自己开发喜欢使用Firefox,一般情况下,大众使用的是IE、360等,这些都是IE内核的。

另外还有Chrome也占有一大部分的比例。所以总体上就分这三款游览器了。

 

直接上代码

Javascript:

<script type="text/javascript">
        var HKEY_Root, HKEY_Path, HKEY_Key;
        HKEY_Root = "HKEY_CURRENT_USER";
        HKEY_Path = "\\Software\\Microsoft\\Internet Explorer\\PageSetup\\";
        function jqprintDiv() {
            //打印初始化
            if ($.browser.msie) {
                //IE浏览器执行
                printitIE('PrintArea');
            } else {
                //其他浏览器执行通用打印
                $("#PrintArea").jqprint();
            }
        }

        function printitIE(MyDiv) {
            PageSetup_Null();
            //提示窗口
            if (confirm('确定打印吗?')) {
                var newstr = document.getElementById(MyDiv).innerHTML;
                document.body.innerHTML = "<div style='position:absolute;left:20px;top:20px;'>" + newstr + "</div>";
                window.print();
                return false;
            }
        }

        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) { }
        }
</script>

 

HTML上的按钮部分就不贴了,就是一个简单的按钮,添加一个Onclick事件。

打印部分就直接用拥有指定ID的DIV包裹就行了。

 

IE部分,调用了var Wsh = new ActiveXObject("WScript.Shell");

调用IE自带的插件。

 

 不过,我不知道为什么,我的机器上IE、Firefox、Chrome都能按照要求打印。

但是到了其他的电脑上就不行了。

具体原因至今没有找到,希望哪位能够指点一二。。。

 

 

 

 

 

 

 

 

你可能感兴趣的:(firefox)