基于JQuery的Iframe自适应

HTML代码
<html>
	<head>
		<title>测试页</title>
		<meta name="autoHeight" content="default"/>
		<!-- 这句meta要加-->
	</head>
	<body>
	</body>
</html>



/**
 * iframe自适应代码,可以定义在公共js里
 */
(function () {
	if ($("meta[name=autoHeight]").get(0) != undefined) {
		var html = "";
		html += ' function updateIframe(targetId,height){';
		html += ' /*动态拼接的代码*/ \n';
		html += ' var stop = false;\n';
		html += ' $("iframe").each(function(index,data){\n';
		html += ' if(stop){\n';
		html += ' return ;\n';
		html += ' }\n';
		html += ' var src = $(data).attr("src");\n';
		html += ' if(src == targetId){\n';
		html += ' $(data).height(height);\n';
		html += ' stop = true;\n';
		html += ' return ;\n';
		html += ' }\n';
		html += ' });\n';
		html += ' }\n';
		if (isScroll().scrollY) {
			while (isScroll().scrollY) {
				var id = window.location.pathname + window.location.search;
				var oldHeight = $("body").height();
				var newHeight = oldHeight + 100;
				$("body").height(newHeight);
				if (typeof(parent.updateIframe) === "undefined") {
					parent.eval(html);
				}
				parent.updateIframe(id, newHeight);
			}
		}
	}
})();


/**
 * 是否出现滚动条
 */
var isScroll = function (el) {
	var elems = el ? [el] : [document.documentElement, document.body];
	var scrollX = false,
	scrollY = false;
	for (var i = 0; i < elems.length; i++) {
		var o = elems[i];
		// test horizontal
		var sl = o.scrollLeft;
		o.scrollLeft += (sl > 0) ? -1 : 1;
		o.scrollLeft !== sl && (scrollX = scrollX || true);
		o.scrollLeft = sl;
		// test vertical
		var st = o.scrollTop;
		o.scrollTop += (st > 0) ? -1 : 1;
		o.scrollTop !== st && (scrollY = scrollY || true);
		o.scrollTop = st;
	}
	// ret
	return {
		scrollX: scrollX,
		scrollY: scrollY
	};
};





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值