ラウンジ(兼FAQ掲示板)

window.print()と画面遷移について
過去ログ NO.1079161433
□ suzuki [2004年03月11日20時32分]
お世話になります。

あるページの印刷ボタンをクリックすると
HTML帳票のページに遷移して、そのページを印刷し、元のページへ戻るという仕組みを考えています。

そのHTML帳票のページで
<body onload="funcPrint();">

<script language="JavaScript">
<!--
function funcPrint() {

if(window.confirm("印刷します、宜しいですか?")){
window.print();
}
window.history.back();
}
// -->
</script>

上記のようにした場合、window.print()で印刷ダイアログが表示されますが
ここで元のページに戻ってしまう場合があります(ダイアログは表示されたまま)
いくつかの端末で試してみると
HTML帳票のページで止まったまま、「印刷」か「キャンセル」ボタンを押すまで待っててくれる場合と
print()を呼び出したら即history.backしてしまう場合があるのですが
これってどこかで設定するものなのでしょうか?。

または必ず待っててくれるようにすることは出来ますでしょうか?

御教授下さいませ。
宜しくお願い致します。
□ NXer [2004年03月13日16時03分]
はじめまして。NXerです。下記のサイト、書籍を参考に
当方のローカル・サーバーでとりあえず動くスクリプト
を試してみました。お役に立ちますでしょうか。

-----------------------------------------------
<TITLE>サンプル</TITLE>
<SCRIPT Language="JavaScript">
  <!--
  function page_print(){
  ret = confirm("ページ内容を印刷します。");
  if(ret == true){
  window.print();
  }
window.history.back()
  }
  // -->
  </SCRIPT></HEAD>
<BODY>    サンプル<BR> <BR> 
  <FORM> 
   <INPUT TYPE="button" VALUE="印刷" onClick="page_print()">
   </FORM>

 </BODY>
</HTML>
---------------------------------------------
>1)あるページの印刷ボタンをクリックすると
>2)HTML帳票のページに遷移して、
>3)そのページを印刷し、
>4)元のページへ戻る
という仕様にはなっていません。

上のスクリプトは
1)あるページの印刷ボタンをクリックすると
2)そのページを印刷する一連の動作がはじまります
3)終了後、画面は、直前のページにもどる
4)キャンセルすると、画面は、印刷をしないで直前のページにもどります

という仕組みです。
上のスクリプトの目的は

>ここで元のページに戻ってしまう場合があります
>帳票のページで止まったまま、、、、ボタンを押すまで待っててくれる場合と
>print()を呼び出したら即history.backしてしまう場合があるのですが

という疑問を当方で再現してみることでした。

>これってどこかで設定するものなのでしょうか?

<FORM>タグで確実に入力(クリック)をするまで「待っててくれ」ました。

当方は、印刷はブラウザに依存していますので、このような
スクリプトは初めてです。よく分っていない点ご容赦ください。

window.history.back()
の代わりに
----------------------------------------------
<SCRIPT Language="JavaScript">
  <!--
  function pageBack(){
history.back();
}
  function page_print(){
  ret = confirm("ページ内容を印刷します。");
  if(ret == true){
  window.print();
  }
  }
  // -->
 <FORM>   
<INPUT TYPE="button" VALUE="印刷" onClick="page_print()">
 </FORM>
<FORM> 
<INPUT TYPE="button" VALUE="もどる" onClick="pageBack()">
 </FORM>
---------------------------------------
と「もどる」ボタンを考えました。しかし印字してみると
「印刷」「もどる」も印刷されて、大切な書類に
余計な情報が残ることから、変えてみました。

ご計画の
>1)あるページの印刷ボタンをクリックすると
>2)HTML帳票のページに遷移して、
という部分は、「あるページと帳票ページ」が常に連続して
n,n+1ページの関係に有るのか、(history.forwardを使うのでしょうか)
nページに対して任意のn+iページなのか
よく分かりません。history.go(移動するページ数 i )など
のメソッドを使うのでしょうか。
(i(アイ)は任意の値を示す、私の愛用する文字です。)
この辺り、こちらこそご教示ください。

------------------
参考ウェブサイト:
http://www.wingworld.co.jp/forum/other/messages/610.html
参考文献:
宮坂雅輝、『JavaScript Handbook』3rd ed.2001、ソフトバンク
パブリッシング
一定時間書込が無かったので過去ログに移りました

suepon.com | CGI作成/CGI制作 | JavaScript | ドメイン検索 | バナー自動作成 | Google ダンスツール | 松浦亜弥 | H.P.memo | パソコン | ネイル

Copyright (C) 2002 - 2008 suepon , All rights reserved. Powered by CGI Script Market.