0

この関数は .asp ページの最後にあります (はい、古い ASP です)。

<script language="JavaScript">
  window.print();
  printPage();

  function printPage() {
    if (confirm("The page was printed correctly?")){
      window.location.replace('Other.asp');
    } else{
      window.print();
      printPage();
    }
  }
</script>

ページを実行すると問題が発生し、印刷オプション ウィンドウが表示されません。NOボタンを押すたびに確認ウィンドウが表示されますが、印刷ウィンドウは表示されません。

間違えたら英語でごめんなさい...

どうもありがとう !!!!アルゼンチン出身のグスタボ。

4

2 に答える 2

1

window.print()非同期で実行されているため、すぐにprintPage()関数を呼び出します。などなど、「いいえ」を押すと。

于 2013-08-24T17:08:42.273 に答える
0

この回答が正しく言及しているように、呼び出されるとすぐに実行され、ネイティブの印刷ダイアログがトリガーされ、ユーザーが実際にページを印刷 (またはキャンセル) するまで待機しません。これがいつ発生するかを知る方法はありません。

とはいえ、これを回避する 1 つの方法は、HTML ドキュメント自体にメッセージを配置することです。このメッセージは最初は非表示で、印刷コマンドを送信した後にのみ表示されます。

<div id="pnlPrintConfirm" style="display: none;">
    The page was printed correctly? 
    <button type="button" onclick="window.location.replace('Other.asp');">Yes</button> 
    <button type="button" onclick="printPage();">No</button>
 </div>

そして JavaScript:

function printPage() {
    //get placeholder element:
    var oDiv = document.getElementById("pnlPrintConfirm");

    //hide so it won't get printed after first print:
    oDiv.style.display = "none";

    //send print command:
    window.print();

    //show confirmation panel:
    oDiv.style.display = "block";
}

printPage()現在持っているコードではなく、最初に呼び出すことを忘れないでください。

于 2013-08-26T07:17:55.797 に答える