1.iframeを読み込むファイルの高さに自動的に合わせたい。
2.iframeの表示と非表示を切り替えたい。
3.1.と2.を読み込み時に行いたい。
1.12.4ではエラーメッセージが出ませんが、3.3.1にすると動作には問題ないようですが、エラーメッセージが表示されるようです。
どうすればエラーメッセージを回避できるでしょうか?
エラーメッセージ
jquery-3.3.1.min.js:2 Uncaught TypeError: Cannot read property 'scrollHeight' of null at HTMLIFrameElement.<anonymous> (sample014q.html:30) at HTMLIFrameElement.dispatch (jquery-3.3.1.min.js:2) at HTMLIFrameElement.y.handle (jquery-3.3.1.min.js:2) at Object.trigger (jquery-3.3.1.min.js:2) at w.fn.init.triggerHandler (jquery-3.3.1.min.js:2) at HTMLDocument.<anonymous> (sample014q.html:33) at l (jquery-3.3.1.min.js:2) at c (jquery-3.3.1.min.js:2)
該当のソースコード
html+js
1<html> 2 3<head> 4 <!-- 5 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 6 --> 7 <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> 8</head> 9 10<body onload="iframe_hidden()"> 11 12<input type="button" value="表示" 13 onclick="document.getElementById('iframe1').style.display = 'block';"> 14<input type="button" value="非表示" 15 onclick="document.getElementById('iframe1').style.display = 'none';"><br> 16<iframe id="iframe1" src="./contents.html" frameborder="0" width="400px" scrolling="no">(IFRAME 機能を有効にして下さい)</iframe> 17<br> 18 19<input type="button" value="表示" 20 onclick="document.getElementById('iframe2').style.display = 'block';"> 21<input type="button" value="非表示" 22 onclick="document.getElementById('iframe2').style.display = 'none';"><br> 23<iframe class="hidden" id="iframe2" src="./contents.html" frameborder="0" width="400px" scrolling="no">(IFRAME 機能を有効にして下さい)</iframe> 24<br> 25 26<script> 27$(document).ready(function(){ 28 $('iframe').on('load', function(){ 29 if (typeof $(this).attr('height') == 'undefined') { 30 $(this).height(this.contentWindow.document.documentElement.scrollHeight); 31 } 32 }); 33 $('iframe').triggerHandler('load'); 34}); 35function iframe_hidden(){ 36 var elements = document.getElementsByClassName("hidden"); 37 for (i = 0; i < elements.length; i++) { 38 console.log(elements[i]); 39 elements[i].style.display = 'none'; 40 } 41} 42</script> 43 44</body> 45</html> 46
補足情報(FW/ツールのバージョンなど)
Windows10
Google Chrome
バージョン: 83.0.4103.97
よろしくお願いします。
あなたの回答
tips
プレビュー