js印刷が完了したらウィンドウを閉じます

3683 ワード

項目の中で1つの需要があって、1つのページの上で1つのボタンをクリックして、1つのデータのページを弾き出して、そして自動的にそのデータのページを印刷してプレビューして、印刷プレビューのウィンドウを閉じてあるいは印刷した後に、自動的にこのデータのページを閉じます.印刷用はブラウザの印刷コンポーネントIEWebBrowserで、IEWebBrowserの関連用法は以下の通りである.

<OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=wb width=0></OBJECT>    
<input name=Button onClick=wb.ExecWB(1,1) type=button value=  >   
<input name=Button onClick=wb.ExecWB(2,1) type=button value=    >   
<input name=Button onClick=wb.ExecWB(4,1) type=button value=   >    
<input name=Button onClick=wb.ExecWB(6,1) type=button value=  >   
<input name=Button onClick=wb.ExecWB(6,6) type=button value=    >   
<input name=Button onClick=wb.ExecWB(7,1) type=button value=    >   
<input name=Button onClick=wb.ExecWB(8,1) type=button value=    >   
<input name=Button onClick=wb.ExecWB(10,1) type=button value=  >   
<input name=Button onClick=wb.ExecWB(17,1) type=button value=  >   
<input name=Button onClick=wb.ExecWB(22,1) type=button value=  >   
<input name=Button onClick=wb.ExecWB(45,1) type=button value=  > 

プロジェクトのクライアント環境にはIE 6とIE 7の2バージョンがあり、上記機能を実現するため、データページのロードが完了した後、WebBrowserの印刷プレビュー方法を実行し、印刷プレビューウィンドウをポップアップする.

  window.wb.execwb(7,1);//       

ただし、印刷プレビューウィンドウを閉じるとデータページは自動的に閉じることができず、手動で閉じるしかなく、印刷が完了して自動的に閉じることができるように、上記コードで印刷が完了してから閉じる方法を実行する

window.wb.execwb(7,1);//       
window.wb.execwb(45,1);//   

テストがこれではだめです.印刷プレビューウィンドウを開くと、Windowsのせいかもしれません.wb.execwb(7,1);印刷プレビューを実行するとき、まだ完全に開いていないので、Windowsを実行しました.wb.execwb(45,1);データページを閉じると、印刷プレビューに必要なデータが取得できなくなります.オフが早すぎる以上、ページを閉じるのを遅らせることで印刷プレビューを完了させるのに十分な時間を与えることができるかどうか考えられます.上のコードを

window.wb.execwb(7,1);//       
setTimeout("function(){window.wb.execwb(45,1);//   }",5000);//5      

修正後は機能が必要だとしか言いようがなく、プロジェクトの歴史的理由もそうするしかない.
テストの結果、IE 7では印刷プレビューページが閉じるときのみsettimeoutの文が機能し、IE 6ではwindow.wb.execwb(7,1);実行が完了するとsettimeoutが実行されて機能するので、IE 7では遅延時間を設定せずにそのまま閉じることができます.変更を続行:
1.ブラウザのバージョンを判断する方法を追加して、ネット上で探して、以下の方法を採用して、とても使いやすいです
ブログを参照:
http://www.cnblogs.com/leadzen/archive/2008/09/06/1285764.html

/**
*   IE  
*/
function getIEVersion() {
    var Sys = {};
	var ua = navigator.userAgent.toLowerCase();
	var s;
	(s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :
	(s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :
	(s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :
	(s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :
	(s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;
	
	return Sys.ie;
}

この方法はie,firefox,chrome,opera,safariなどのブラウザやバージョンを識別することができる.何のブラウザかを判断するなら、そう判断します.

1.   IE
    if(Sys.ie) {//   IE
    }
2.    
    alert(Sys.ie);

私たちのクライアントはIE 6,7の2つのバージョンしか考慮していないので、再び修正した後、上のコードは

    var ieVersion = getIEVersion();
    window.wb.execwb(7,1);//       
    
    if (ieVersion =="6.0") {
       setTimeout("function(){window.wb.execwb(45,1);//   }",5000);//5      
    } else if(ieVersion =="7.0") {
       window.wb.execwb(45,1);//   
    }