iframe去除双滚动条

iframe嵌套的内容多的时候会自带滚动条

一、问题描述

当iframe嵌套的内容多的时候会自带滚动条,致使出现双滚动条,如图
在这里插入图片描述

二、问题处理

1.思路

使得iframe的高度和自动根据内容的大小进行调控

2.实现

1、父页面增加以下内容,即根据页面内容动态给iframe高度的赋值:

<script type="text/javascript">
	     	function setIframeHeight() {
		 		var iframe =document.getElementById('iframe0');
		 		iframe.height=400;
		 		var iframeWin = iframe.contentWindow || iframe.contentDocument.parentWindow;
		 		if (iframeWin.document.body) {
			 		iframe.height = Math.min(iframeWin.document.documentElement.scrollHeight,iframeWin.document.body.scrollHeight)+60;
			 		window.scrollTo(0,0);
			 		return iframe.height;
		 		}
	 		};
	 		//事件会在窗口或框架被调整大小时发生
	 		window.onresize = function(){
	 			setIframeHeight();
	 		}
	</script>

完整版代码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>嵌套父页面</title>
     <script type="text/javascript" src="js/jquery-2.1.1.js"></script>
     <style type="text/css">
		#head {
			height: 300px;
			width: 100%;
			background-color: green;
			text-align: center;
			color: #fff;
			font-size: 20px;
		}
		
		#foot {
			height: 300px;
			width: 100%;
			background-color: blue;
			text-align: center;
			color: #fff;
			font-size: 20px;
		}
</style>
	<script type="text/javascript">
	     	function setIframeHeight() {
		 		var iframe =document.getElementById('iframe0');
		 		iframe.height=400;
		 		var iframeWin = iframe.contentWindow || iframe.contentDocument.parentWindow;
		 		if (iframeWin.document.body) {
			 		iframe.height = Math.min(iframeWin.document.documentElement.scrollHeight,iframeWin.document.body.scrollHeight)+60;
			 		window.scrollTo(0,0);
			 		return iframe.height;
		 		}
	 		};
	 		//事件会在窗口或框架被调整大小时发生
	 		window.onresize = function(){
	 			setIframeHeight();
	 		}
	</script>
  </head>
  <body>
	   <div id="head">这是共用头<br>
		   <button οnclick="menu(1)">children菜单</button>
		   <button οnclick="menu(2)">daughter菜单</button>
		   <button οnclick="menu(3)">son菜单</button>
	   </div>
	  
	   <iframe id="iframe0" class="J_iframe content" name="iframe0" height="400px" width="100%"  src="/TestModel/test/son" frameborder="0" data-id="" seamless></iframe>
	  
	   <div id="foot">这是共用尾</div>
	   
	   <script type="text/javascript">
		   function menu(str){
			   var src="/TestModel/test/children";
			   if(str=='1'){
				   src="/TestModel/test/children";
			   }else if(str=='2'){
				   src="/TestModel/test/daughter";
			   }else if(str=='3'){
				   src="/TestModel/test/son";
			   }
			   $("#iframe0").attr("src", src);
		   }
	   </script>
  </body>
</html>

2、每一个子页面都增加如下内容,调用父页面的“动态给iframe高度的赋值”方法:

 <script type="text/javascript">
		$(document).ready(function(){
			parent.setIframeHeight();
        });
</script> 

完整版代码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>嵌套子页面</title>
     <script type="text/javascript" src="/TestModel/js/jquery-2.1.1.js"></script>
 	 <script type="text/javascript">
		$(document).ready(function(){
			parent.setIframeHeight();
        });
     </script> 
  </head>
  <body>
		<h1>这是是son页面</h1> 
		<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
		<h1>这是是son页面</h1> 
  </body>
</html>

三、效果

页面大小自动填充,双滚动条消失
在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值