前提・実現したいこと
初心者です。JSでiframeの高さを自動調整するスクリプトを調べて使ってみました。
普通に開いたりリロードしたりする分には問題ないのですが、新しいタブで開いたときにだけ高さが調整されませんでした。
新しいウィンドウで開いてもスーパーリロードをしても問題なく、apacheの設定でキャッシュは取られないようにしています。
いろいろしらべたのですが見つからなかったので質問させていただきました。よろしくお願いします。
該当のソースコード(home.html)
<!DOCTYPE html> <html lang="ja"> <head> <meta http-equiv="Cache-Control" content="no-cache"> <meta charset="UTF-8"> <title></title> <link rel="stylesheet" href="home.css"> <script>console.log("スタイル適用用");</script> </head> <body> <div class = "wrap"> <iframe scrolling="no" width="100%" height="150" frameborder="0" class="header" src="/defa/header/header.html"></iframe> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <script src="/JS/iframe.js"></script> <script src="/JS/fadein.js"></script> </div> </body> </html>
該当のソースコード(iframe.js)
$('iframe') .on('load', function () { try { $(this).height(0); $(this).height(this.contentWindow.document.documentElement.scrollHeight); } catch (e) { } }) .trigger('load');
該当のソースコード(home.css)
@charset "utf-8"; @font-face { font-family: 'azuki'; src: url('/font/azuki.ttf'); } @font-face { font-family: 'logo_round'; src: url('/font/corp_round_v1.ttf'); } @font-face { font-family: 'logo'; src: url('/font/logotypejp_mp_m_1.1.ttf'); } @font-face { font-family: 'din'; src: url('/font/din1451alt.ttf'); } @font-face { font-family: 'koruri'; src: url('/font/Koruri-Light.ttf'); } * { margin: 0px; padding: 0px; } body { background: rgb(0, 0, 0); overflow-y: scroll; -ms-overflow-style: none; scrollbar-width: none; } body::-webkit-scrollbar { display: none; } .wrap { width: 100%; height: auto; margin: 0 auto; text-align: center; } .header { display: block; margin-top: auto; width: 100%; } h1 { font-family: koruri; font-weight: normal; font-size: 5em; color: white; }
試したこと
iframe.jsを
$('iframe') .on('load', function () { alert("hello world!"); try { $(this).height(0); $(this).height(this.contentWindow.document.documentElement.scrollHeight); } catch (e) { } }) .trigger('load');
にしてアラートを出させるようにしました。そしたら反応したのでファイル自体は読み込めているようです。
Microsoft Edgeでも高さ調節がされませんでした。
スマホの新しいタブで開くを使うと高さ調節されました。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。