度々失礼します。
下記のソースで子画面の閉じるボタンを押したときにshowModalを閉じたいのですが、
やり方がわからず困っております。
contentWindow.documentで子画面の要素を取れるみたいなのですがうまくいきませんでした。
どのように実装すれば子画面を閉じれますでしょうか?
よろしくお願い致します。
--parent.html-- <html lang="ja"> <head> <meta charset="utf-8"> <title></title> </head> <body> <div id="oya"> <p>親</p> <div><button id="call_child">子呼び出し</button></div> <input type="text" placeholder="入力内容がiframe内に反映されます。" /> <button id="exe1">実行</button> <div id="oya-result">結果がここに反映されます。</div> </div> <script type='text/javascript' src='//code.jquery.com/jquery-2.2.4.min.js'></script> <script type="text/javascript"> $(function() { $(document).on('click', '#call_child', function() { const dialog = document.body.appendChild(document.createElement('dialog')); dialog.innerHTML = '<iframe id="inner_elem" src="child.html" style="border: 0; width:400px; height:200px;"></iframe>'; dialog.showModal(); }); $(document).on('click', '#exe1', function() { $('#child-frame').contents().find('#ko-result').text($('#oya input').val()); }); }); </script> </body> </html> --child.html-- <html lang="ja"> <head> <meta charset="utf-8"> <title></title> </head> <body id="children"> <p>iframe内</p> <div id="ko"> <p>子</p> <div><button id="btn_close">閉じる</button></div> <input type="text" id="" placeholder="入力内容が親ページに反映されます。" /> <button id="exe2">実行</button> <div id="ko-result">結果がここに反映されます。</div> </div> <script type='text/javascript' src='//code.jquery.com/jquery-2.2.4.min.js'></script> <script type="text/javascript"> $(function() { $(document).on('click', '#exe2', function() { $('#oya-result' ,parent.document).text($('#ko input').val()); }); }); </script> </body> </html>
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。