伺いたいこと
先ほどjs読み込みの際はnullになるが、devツールのコンソールではnullにならないという質問を投稿したところ、素早く解答をいただき解決しました。
その際、以下の4つを試しました
- 即実行関数 + querySelectorALL("iframe");
- 即実行関数 + querySelector("iframeのid");
- window.onload + querySelectorALL("iframe");
- window.onload + querySelector("iframeのid");
上記のうち1番の即実行関数とhtmlタグ指定の組み合わせの時だけ動きました。
これはなぜなのかご教示いただけませんでしょうか。
ソース
動く
-
- 即実行関数 iframeタグ指定
lang:js
1"use strict"; 2(function () { 3 let iframes = document.querySelectorAll("iframe"); 4 iframes[0].onload = function(){ 5 let dropzoneFrame = document.querySelector('#clientframe'); 6 let dFWindow = dropzoneFrame.contentWindow; 7 let allElements = dFWindow.document.body.querySelectorAll('*'); 8 console.log(dFWindow); 9 } 10})();
動かない
-
- 即実行関数 iframe id指定
lang:js
1"use strict"; 2(function () { 3 let dropzoneFrame = document.querySelector('#clientframe'); 4 5 dropzoneFrame.onload = function(){ 6 let dFWindow = dropzoneFrame.contentWindow; 7 let allElements = dFWindow.document.body.querySelectorAll('*'); 8 console.log(dFWindow); 9 } 10})(); 11
-
- window.onload iframeタグ指定
lang:js
1"use strict"; 2window.onload = function () { 3 let iframes = document.querySelectorAll("iframe"); 4 iframes[0].onload = function () { 5 let dropzoneFrame = document.querySelector('#clientframe'); 6 let dFWindow = dropzoneFrame.contentWindow; 7 let allElements = dFWindow.document.body.querySelectorAll('*'); 8 console.log(dFWindow); 9 } 10} 11
-
- window.onload iframe id指定
lang:js
1"use strict"; 2window.onload = function () { 3 let dropzoneFrame = document.querySelector('#clientframe'); 4 5 dropzoneFrame.onload = function(){ 6 let dFWindow = dropzoneFrame.contentWindow; 7 let allElements = dFWindow.document.body.querySelectorAll('*'); 8 console.log(dFWindow); 9 } 10} 11
HTML
lang:html
1<!DOCTYPE html> 2<html lang="ja"> 3 <head> 4 <meta charset="utf-8"> 5 <title>dnd</title> 6 <link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" 7 crossorigin="anonymous"> 8 </head> 9 <body> 10 <div class="container"> 11 <div class="row"> 12 <div class="col-md-3"></div> 13 <div class="col-md-6"> 14 <iframe id="clientframe" disablehistory="true" src="./sandbox.html" style="visibility: visible; width: 700px; height: 700px; transform-origin: 0px 0px 0px; transform: scale(0.535172);"></iframe> 15 </div> 16 </div> 17 </div> 18 <script src="./application.js"></script> 19 </body> 20</html>

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/03/08 11:45