回答編集履歴

1

onbeforeprintなるイベントがあるらしい

2019/08/05 07:16

投稿

miyabi-sun
miyabi-sun

スコア21158

test CHANGED
@@ -28,11 +28,19 @@
28
28
 
29
29
 
30
30
 
31
- 変数で保存しておいて`element.innerHTML = htmlString;`みたいなコードでゴリ押しではめ込むとかすれば元には戻せますが、
31
+ 変数で保存しておいて`element.innerHTML = htmlString;`みたいなコードでゴリ押しではめ込むとかすれば元には戻せます
32
32
 
33
- Ctrl+Pのショーカットで印刷ようなケースも考え
33
+ また[onbeforeprint](https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeprint)や[onafterprint](https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onafterprint)というイベンも存在いるので
34
34
 
35
+ Ctrl+Pのショートカットで印刷したいようなケースでも
36
+
37
+ 元々存在していたHTMLを一時的に復元して印刷が終了したら元に戻すという事は可能です。
38
+
39
+
40
+
41
+ しかし、かなりコストがかさみますし、設置したイベントは剥がれるしでバグの温床になりがちで非現実的と言わざるを得ないでしょう。
42
+
35
- 印刷する瞬間だけJSを無効(≒壊したHTML戻す)という事基本的に出来ないと考えた方が良いでしょう。
43
+ なので額面通りに捉えた**印刷時にJSを無効にする**選ぶの不可能と考えた方が良いでしょう。
36
44
 
37
45
 
38
46
 
@@ -40,9 +48,15 @@
40
48
 
41
49
 
42
50
 
43
- 解決方法とては2通りあります。
51
+ 従って、JavaScriptによるHTMLの変更を許容ながら、
44
52
 
53
+ 印刷の邪魔にならないようにするという方向を模索することになります。
54
+
55
+
56
+
57
+ そちらの意味では解決方法が2通りあります。
58
+
45
- 使い分けたり併用して解決しましょう
59
+ ページの状況に従って使い分けたり併用してください
46
60
 
47
61
 
48
62