自动设置iframe高度,供第三方调用,实现iframe高度自适应;
这个可以解决跨域问题。
iframe 如下
<iframe id="showFrame" src="{:C('AuditResource')}" width="100%" height="620" border="0" frameborder="0"></iframe>
iframe 的src地址包含如下代码片段:
<iframe width="0" height="0" style="display: none;" src="http://domain/setIframeHeight?#300" name="iframeA" id="iframeA"></iframe>
<script type="text/javascript">
try {
function sethash() {
var hashH = document.documentElement.scrollHeight;
var urlC = "http://domain/setheight.html";
document.getElementById("iframeA").src = urlC + "#" + hashH + "#" + Math.random();
}
} catch (e) { }
</script>
http://domain/setIframeHeight 的代码如下:
/**
*自动设置iframe高度,供第三方调用,实现iframe高度自适应
*/
public function setIframeHeight() {
header("Content-type: text/html; charset=utf-8");
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
echo '<script type="text/javascript">
var b_iframe = parent.parent.document.getElementById("showFrame");
//var app_show_left = parent.parent.document.getElementById("aside_left");
var hash_url = window.location.hash;
var hash_width = hash_url.split("#")[1].split("|")[0];
var hash_height = hash_url.split("#")[1].split("|")[1];
if(undefined==hash_height) {
hash_height = hash_width;
hash_width = 0;
}
//b_iframe.style.width = hash_width;
b_iframe.style.height = hash_height+"px";
</script>';
}