回答編集履歴

2

修正

2023/10/13 04:54

投稿

yambejp
yambejp

スコア114968

test CHANGED
@@ -33,3 +33,25 @@
33
33
  });
34
34
  });
35
35
  ```
36
+
37
+ # 修正版
38
+ ※ブラウザ間の挙動の調整ができてませんでした
39
+ ```javascript
40
+ <script>
41
+ const nodragover=()=>{
42
+ event.preventDefault();
43
+ event.dataTransfer.dropEffect = "none";
44
+ }
45
+ window.addEventListener('DOMContentLoaded', ()=>{
46
+ document.querySelectorAll('iframe').forEach(x=>{
47
+ x.contentDocument.addEventListener('dragover',nodragover);
48
+ x.addEventListener('load',()=>x.contentDocument.addEventListener('dragover',nodragover));
49
+ });
50
+ });
51
+ document.addEventListener('dragover',nodragover);
52
+
53
+ </script>
54
+ <iframe></iframe>
55
+ <iframe></iframe>
56
+ <iframe></iframe>
57
+ ```

1

追記

2023/10/13 00:40

投稿

yambejp
yambejp

スコア114968

test CHANGED
@@ -20,3 +20,16 @@
20
20
  child
21
21
  ```
22
22
 
23
+ # 追記
24
+ メインページだけで制御したなら子windowのloadを待ってイベント制御する感じ
25
+ ```javascript
26
+ const nodragover=doc=>doc.addEventListener('dragover',e=>e.dataTransfer.dropEffect = "none");
27
+ window.addEventListener('DOMContentLoaded', ()=>{
28
+ nodragover(document);
29
+ document.querySelectorAll('iframe').forEach(x=>{
30
+ x.addEventListener('load', ()=>{
31
+ nodragover(x.contentDocument);
32
+ });
33
+ });
34
+ });
35
+ ```