質問: ### 前提 ウェブサイトの制作において、レスポンシブ処理の補助用途を目的として 【条件】ウィンドウのリサイズ時 【結果】ページをリロードする 処理をJavaScript/jQueryで組みこんでいます。 ### 発生している問題 上記処理自体は実現したのですが、派生した問題として 【条件】ブラウザ:Google Chromeで印刷プレビューを開いた際 【結果】プレビューの表示がリサイズと判定されて、リロードが実行されて印刷プレビューがキャンセルされる という現象が起こり、印刷が出来なくなり困っています。 ### 解決したいこと 「Google Chromeでの印刷プレビュー時にJavascroptが実行されない」 のような回避策があればご享受いただければと思います。 ### 該当のソースコード ``` 処理:リサイズの実行を監視して、リサイズ動作が終了した時点でリロードを実行。 ``` ### 試したこと IE v11 Firefox v52.0 ではこの現象起こらないので、Chrome仕様の擬似レイヤー上での印刷プレビューが原因かと思われる ### 補足情報(言語/FW/ツール等のバージョンなど) ・Google Chrome v56.0.2924.87 (64-bit) ・jQuery v1.10.2
回答: 「リサイズ時にリロード」という実装自体に大きな問題があります(むしろそちらを早く解決するほうが良いです)が、特定の要素に `@media print` と `@media screen` で違う値を設定し、それをもって判別してはいかがでしょうか。 【そろそろ真面目に、HTMLで帳票を描く話をしようか - Qiita】