아이프레임 자동높이
본문
부모파일
<iframe src="01.html" id="myiframe" scrolling="no" width="300"></iframe>
<script type="text/javascript">
let iframe = document.getElementById('myiframe');
window.addEventListener('message', function(e) {
let message = e.data;
iframe.style.height = message.height + "px";
} , false);
</script>
자식파일 (01.html)
<script type="text/javascript">
window.addEventListener('load', function() {
let message = {height: document.body.scrollHeight};
window.top.postMessage(message, "*");
});
</script>
<div style="height:500px; background:#ccc;">
<a href="02.html">이동</a>
</div>
자식파일 (02.html)
<script type="text/javascript">
window.addEventListener('load', function() {
let message = {height: document.body.scrollHeight};
window.top.postMessage(message, "*");
});
</script>
<div style="height:1500px; background:#555;">
<a href="01.html">이동</a>
</div>
처음 자동높이는 잘됩니다.
다만 아이프레임 내에서 이동시 높이가 높은 파일로 이동하면 이상이 없는데,
낮은 파일로 이동하면, 높이가 맞춰지지 않습니다.
문제가 뭘까요...??;
!-->!-->!-->답변 1
다음과 같은 방법으로 시도해 볼 수 있을것 같습니다.
<!-- 부모 파일 -->
<iframe src="01.html" id="myiframe" scrolling="no" width="300"></iframe>
<script type="text/javascript">
let iframe = document.getElementById('myiframe');
window.addEventListener('message', function(e) {
let message = e.data;
iframe.style.height = message.height + "px";
} , false);
</script>
<!-- 자식 파일 (01.html) -->
<script type="text/javascript">
window.addEventListener('load', function() {
let message = {height: Math.max(document.body.scrollHeight, document.documentElement.scrollHeight)};
window.top.postMessage(message, "*");
});
</script>
<div style="height:500px; background:#ccc;">
<a href="02.html">이동</a>
</div>
<!-- 자식 파일 (02.html) -->
<script type="text/javascript">
window.addEventListener('load', function() {
let message = {height: Math.max(document.body.scrollHeight, document.documentElement.scrollHeight)};
window.top.postMessage(message, "*");
});
</script>
<div style="height:1500px; background:#555;">
<a href="01.html">이동</a>
</div>
답변을 작성하시기 전에 로그인 해주세요.