以前にここで議論されたことは知っていますが、これに対する実用的な解決策/回避策は見つかりませんでした。誰かがこの問題を解決する方法を知っていることを願っています!
ここにあります:
Google Chrome で (ユーザーが印刷ボタンをクリックした場合のように) 1 つのページ内でメソッドを頻繁に呼び出そうとするとwindow.print()
、ブラウザーはコンソールに次のような警告メッセージをスローします。
print() の頻繁な呼び出しを無視する
そして、何も起こりません!window.print()
数秒後、通常の状態に戻り、コマンドを再度呼び出した瞬間に印刷ダイアログが表示されます! さらに悪いことに、善良な Chrome のユーザーは、印刷コマンドを呼び出すページに指数関数的な待機時間を使用します。つまり、ユーザーがボタンをクリックして印刷するほど、印刷ダイアログが表示されるまで待たなければなりません!
この問題はかなり長い間 chrome に存在しており (14 以降のバージョン) 、バグであることが確認されています。昨日、Google チームに再度投稿しました。Chrome チームの誰かがこの信じられないほど迷惑な機能がいつ修正されるかを確認できることを願っています。 !Area-UI
ただし、ここで探しているのは、この問題の回避策です。これを機能させるためにできることはありますか? 私の会社は、印刷が必要な多数のレポートを含む高度にトランザクションの多い財務システムを開発しています。このわずかな不具合が原因で、プロジェクト全体が私のお気に入りの Google Chrome ブラウザーで実行されてしまう危険があります。
アップデート:
この機能を引き起こすChrome ブラウザのコードは次のとおりです。誰かが印刷コマンドを再度呼び出すまでに少なくとも 2 秒かかるようです。そのため、UI で 2 秒間隔のタイマーを設定すると、無限待機コールバックが発生するのを防ぐことができます。他の考えはありますか?