国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

利用location.hash實現跨域iframe自適應

2019-11-21 00:32:03
字體:
來源:轉載
供稿:網友

頁面域關系:

主頁面a.html所屬域A:m.survivalescaperooms.com
被iframe的頁面b.html所屬域B:www.baidu.com,假設地址:http://www.baidu.com/b.html

實現效果:

A域名下的頁面a.html中通過iframe嵌入B域名下的頁面b.html,由于b.html的寬度和高度是不可預知而且會變化的,所以需要a.html中的iframe自適應大小.

問題本質:

js對跨域iframe訪問問題,因為要控制a.html中iframe的高度和寬度就必須首先讀取得到b.html的大小,A、B不屬于同一個域,瀏覽器為了安全性考慮,使js跨域訪問受限,讀取不到b.html的高度和寬度.

解決方案:

引入代理代理頁面c.html與a.html所屬相同域A,c.html是A域下提供好的中間代理頁面,假設c.html的地址:m.survivalescaperooms.com/c.html,它負責讀取location.hash里面的width和height的值,然后設置與它同域下的a.html中的iframe的寬度和高度.

代碼如下:

a.html代碼

首先a.html中通過iframe引入了b.html

復制代碼 代碼如下:

<iframe id=”b_iframe” height=”0″ width=”0″ src=”http://www.baidu.com/b.html” frameborder=”no” border=”0px” marginwidth=”0″ marginheight=”0″ scrolling=”no” allowtransparency=”yes” ></iframe>

b.html代碼
復制代碼 代碼如下:

<script type=”text/javascript”>
var b_width = Math.max(document.documentElement.clientWidth,document.body.clientWidth);
var b_height = Math.max(document.documentElement.clientHeight,document.body.clientHeight);
var c_iframe = document.getElementById(”c_iframe”);
c_iframe.src = c_iframe.src+”#”+b_width+”|”+b_height; ////m.survivalescaperooms.com/c.html#width|height”
}
</script>

<! 主站蜘蛛池模板: 德清县| 敖汉旗| 梅河口市| 军事| 望都县| 北京市| 苗栗县| 阿拉善左旗| 新兴县| 文登市| 赫章县| 阿拉善盟| 故城县| 类乌齐县| 兴义市| 郯城县| 永宁县| 原阳县| 图片| 即墨市| 酉阳| 老河口市| 井陉县| 泰和县| 宜昌市| 谢通门县| 罗平县| 拜城县| 阿瓦提县| 同仁县| 梁平县| 镇平县| 凉城县| 额敏县| 大余县| 商水县| 巴里| 东海县| 临武县| 上犹县| 新沂市|