多个iframe同时加载并动态调整大小


动态调整iframe高度的函数

function dyniframesize(ifm) {
		var pTar = null; 
		if (document.getElementById){ 
			pTar = document.getElementById(ifm); 
		}else{ 
			eval('pTar = ' + ifm + ';'); 
		}
		$(pTar).parent().css("visibility", "hidden");
		if (pTar && pTar.src && !window.opera){
		//begin resizing iframe 
			pTar.style.display="block" ;
			if (pTar.contentDocument && pTar.contentDocument.body.offsetHeight){ 
				//ns6 syntax 
				pTar.height = pTar.contentDocument.body.offsetHeight +20; 
				//pTar.width = pTar.contentDocument.body.scrollWidth+20; 
			}else if (pTar.Document && pTar.Document.body.scrollHeight){ 
				//ie5+ syntax 
				pTar.height = pTar.Document.body.scrollHeight; 
				//pTar.width = pTar.Document.body.scrollWidth; 
			} 
			$(pTar).parent().css("visibility", "visible");
		}
	}

iframe初始化HTML页面放置要求


		<%--题目类容 --%>	
		<div class="challengeCantainter" style="margin-left:50px;">
			<s:iterator value="exerciseItemVoList" var="exerVo" status="status">
				<s:if test="isShowUserAnswer">
						<iframe id="challengeIframe${status.index}" name="challengeIframe${status.index}" index="${status.index}" style="display: none;"
							scrolling="no"  width="660px" frameborder="no" border="0" οnclick="javascript:dyniframesize('challengeIframe${status.index}');"
							src ="<s:url value="/exercise/showExercise.action">
	            				<s:param name="itemId" value="#exerVo.id"/>
	            				<s:param name="exerciseStudyRecordItemId" value="#exerVo.exerciseStudyRecordItemId"/>
	        				</s:url>">
						</iframe>
				</s:if>
				<s:else>
						<iframe id="challengeIframe${status.index}" name="challengeIframe${status.index}" index="${status.index}" style="display: none;"
							scrolling="no"  width="660px" frameborder="no" border="0" οnclick="javascript:dyniframesize('challengeIframe${status.index}');"
							src ="<s:url value="/exercise/showExercise.action">
	            				<s:param name="itemId" value="#exerVo.id"/>
	        				</s:url>">
						</iframe>
				</s:else>
			</s:iterator>
		</div>

触发调整




监控iframe加载的状态变化

每当iframe加载页面,过程内会激活onreadystatechange事件三次,
相应的状态分别是loading,interactive和complete,而最后一次才是complete. 

var oFrm = document.getElementById('ifrm');
oFrm.onload = oFrm.onreadystatechange = function() {
     if (this.readyState && this.readyState != 'complete') return;
     else {
         onComplete();
     }
}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值