回答編集履歴

8

追記

2020/10/11 13:25

投稿

kuma_kuma_
kuma_kuma_

スコア2506

test CHANGED
@@ -164,7 +164,7 @@
164
164
 
165
165
  window.addEventListener("keydown", function(e){
166
166
 
167
- if(e.ctrlKey || e.altKey) overlay.style.display = "";
167
+ if(e.ctrlKey || e.altKey || e.keyCode == 91) overlay.style.display = "";
168
168
 
169
169
  });
170
170
 
@@ -172,7 +172,7 @@
172
172
 
173
173
  if(!e.ctrlKey && !e.altKey) overlay.style.display = "none";
174
174
 
175
- if((e.keyCode || e.charCode) == 44){
175
+ if(e.keyCode == 44 || e.keyCode == 91){
176
176
 
177
177
  try { navigator.clipboard.writeText(''); } catch (error) {}
178
178
 
@@ -259,3 +259,9 @@
259
259
  [PDF.js viewer(未対策版)](http://kumakuma.g1.xrea.com/test/pdfjs25207/web/viewer.html)
260
260
 
261
261
  ※ 未対策版はPDFを表示後読み込ませて下さい。
262
+
263
+
264
+
265
+ 追記3
266
+
267
+ 一部ノートパソコンでのプリントスクリーンに対応

7

追記

2020/10/11 13:24

投稿

kuma_kuma_
kuma_kuma_

スコア2506

test CHANGED
@@ -257,3 +257,5 @@
257
257
  [PDF.js viewer(対策版)](http://kumakuma.g1.xrea.com/test/pdfjs25207/web/viewertest.html)
258
258
 
259
259
  [PDF.js viewer(未対策版)](http://kumakuma.g1.xrea.com/test/pdfjs25207/web/viewer.html)
260
+
261
+ ※ 未対策版はPDFを表示後読み込ませて下さい。

6

追記

2020/10/11 08:36

投稿

kuma_kuma_
kuma_kuma_

スコア2506

test CHANGED
@@ -247,3 +247,13 @@
247
247
  追記
248
248
 
249
249
  ※ プリントスクリーンの対策がアクティブウインドウ時のみだった為処理を追加
250
+
251
+
252
+
253
+ 追記2
254
+
255
+ しばらくは残しておきますが時間がたてば消します。
256
+
257
+ [PDF.js viewer(対策版)](http://kumakuma.g1.xrea.com/test/pdfjs25207/web/viewertest.html)
258
+
259
+ [PDF.js viewer(未対策版)](http://kumakuma.g1.xrea.com/test/pdfjs25207/web/viewer.html)

5

修正漏れ

2020/10/11 08:28

投稿

kuma_kuma_
kuma_kuma_

スコア2506

test CHANGED
@@ -158,9 +158,9 @@
158
158
 
159
159
  document.onMouseDown = function(){return false;}
160
160
 
161
- document.addEventListener('blur', function(){ overlay.style.display = ""; });
161
+ window.addEventListener('blur', function(){ overlay.style.display = ""; });
162
-
162
+
163
- document.addEventListener('focus', function(){ overlay.style.display = "none"; });
163
+ window.addEventListener('focus', function(){ overlay.style.display = "none"; });
164
164
 
165
165
  window.addEventListener("keydown", function(e){
166
166
 

4

追記

2020/10/10 22:23

投稿

kuma_kuma_
kuma_kuma_

スコア2506

test CHANGED
@@ -98,6 +98,8 @@
98
98
 
99
99
  <script type="text/javascript">
100
100
 
101
+ var overlay;
102
+
101
103
  window.onload= function(){
102
104
 
103
105
  let el;
@@ -114,11 +116,33 @@
114
116
 
115
117
  el.parentNode.removeChild(el);
116
118
 
119
+ overlay = document.createElement('div');
120
+
121
+ overlay.id = 'overlay';
122
+
123
+ overlay.style.position = 'absolute';
124
+
125
+ overlay.style.left = "0";
126
+
127
+ overlay.style.top = "0";
128
+
129
+ overlay.style.width = "100%";
130
+
131
+ overlay.style.height = "100%";
132
+
133
+ overlay.style.background = "rgba(64, 64, 64, 0.99)";
134
+
135
+ overlay.style.zIndex = "2147483647";
136
+
137
+ overlay.style.display = "none";
138
+
139
+ document.body.appendChild(overlay);
140
+
117
141
  el = document.createElement('style');
118
142
 
119
143
  el.type = "text/css";
120
144
 
121
- document.getElementsByTagName('head').item(0).appendChild(el);
145
+ document.head.appendChild(el);
122
146
 
123
147
  document.styleSheets.item( document.styleSheets.length - 1).insertRule(" * { -webkit-touch-callout: none !important; -webkit-user-select: none !important; -moz-user-select: none !important; -ms-user-select: none !important; user-select: none !important;}", 0);
124
148
 
@@ -130,15 +154,31 @@
130
154
 
131
155
  document.ondragstart = function(){return false;}
132
156
 
133
- document.body.onCopy = function(){return false;}
157
+ document.oncopy = function(){return false;}
134
-
158
+
135
- document.body.onMouseDown = function(){return false;}
159
+ document.onMouseDown = function(){return false;}
160
+
136
-
161
+ document.addEventListener('blur', function(){ overlay.style.display = ""; });
162
+
137
- window.onblur = function(){ document.getElementById('viewerContainer').style.display = "none"; }
163
+ document.addEventListener('focus', function(){ overlay.style.display = "none"; });
164
+
138
-
165
+ window.addEventListener("keydown", function(e){
166
+
167
+ if(e.ctrlKey || e.altKey) overlay.style.display = "";
168
+
169
+ });
170
+
171
+ window.addEventListener("keyup", function(e){
172
+
139
- window.onfocus = function(){ document.getElementById('viewerContainer').style.display = ""; }
173
+ if(!e.ctrlKey && !e.altKey) overlay.style.display = "none";
174
+
140
-
175
+ if((e.keyCode || e.charCode) == 44){
176
+
141
- window.onkeyup = function(e){ if((navigator.clipboard) && (e.keyCode || e.charCode) == 44) navigator.clipboard.writeText(''); }
177
+ try { navigator.clipboard.writeText(''); } catch (error) {}
178
+
179
+ }
180
+
181
+ });
142
182
 
143
183
 
144
184
 
@@ -146,17 +186,17 @@
146
186
 
147
187
  function loadData(d) {
148
188
 
149
- var raw = atob(d);
189
+ var raw = atob(d);
150
-
190
+
151
- var uint8Array = new Uint8Array(new ArrayBuffer(raw.length));
191
+ var uint8Array = new Uint8Array(new ArrayBuffer(raw.length));
152
-
192
+
153
- for (var i = 0, len = raw.length; i < len; ++i) {
193
+ for (var i = 0, len = raw.length; i < len; ++i) {
154
-
194
+
155
- uint8Array[i] = raw.charCodeAt(i);
195
+ uint8Array[i] = raw.charCodeAt(i);
156
-
196
+
157
- }
197
+ }
158
-
198
+
159
- return uint8Array;
199
+ return uint8Array;
160
200
 
161
201
  }
162
202
 
@@ -207,5 +247,3 @@
207
247
  追記
208
248
 
209
249
  ※ プリントスクリーンの対策がアクティブウインドウ時のみだった為処理を追加
210
-
211
- 判りやすく表示を消すようにしたが、フィルタをかけたほうがスマートかもしれません。

3

追記

2020/10/10 22:17

投稿

kuma_kuma_
kuma_kuma_

スコア2506

test CHANGED
@@ -134,6 +134,12 @@
134
134
 
135
135
  document.body.onMouseDown = function(){return false;}
136
136
 
137
+ window.onblur = function(){ document.getElementById('viewerContainer').style.display = "none"; }
138
+
139
+ window.onfocus = function(){ document.getElementById('viewerContainer').style.display = ""; }
140
+
141
+ window.onkeyup = function(e){ if((navigator.clipboard) && (e.keyCode || e.charCode) == 44) navigator.clipboard.writeText(''); }
142
+
137
143
 
138
144
 
139
145
  PDFViewerApplication.open(loadData(datamap));
@@ -195,3 +201,11 @@
195
201
 
196
202
 
197
203
  以上が「PDFを印刷・ダウンロード・プリントスクリーンさせず表示する方法」となります。
204
+
205
+
206
+
207
+ 追記
208
+
209
+ ※ プリントスクリーンの対策がアクティブウインドウ時のみだった為処理を追加
210
+
211
+ 判りやすく表示を消すようにしたが、フィルタをかけたほうがスマートかもしれません。

2

追記

2020/10/10 18:43

投稿

kuma_kuma_
kuma_kuma_

スコア2506

test CHANGED
@@ -76,7 +76,7 @@
76
76
 
77
77
  [JavaScriptでcsv読み込み](https://ameblo.jp/hollow-nage/entry-11512841947.html)
78
78
 
79
- のようにして無加工でファイルを読む仕組みでも構いません。
79
+ のようにして無加工BASE64形式でファイルを読む仕組みでも構いません。
80
80
 
81
81
  (ローカルで済ませたくてこの様な形にしているだけです)
82
82
 

1

修正

2020/10/10 17:07

投稿

kuma_kuma_
kuma_kuma_

スコア2506

test CHANGED
@@ -194,4 +194,4 @@
194
194
 
195
195
 
196
196
 
197
- 以上が「PDFを印刷・ダウンロード・ドコピーさせず表示する方法」となります。
197
+ 以上が「PDFを印刷・ダウンロード・プリントスクリさせず表示する方法」となります。