最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用location.hash實現(xiàn)跨域iframe自適應

 更新時間:2010年05月04日 10:13:44   作者:  
其他一些類似js跨域操作問題也可以按這個思路去解決,需要的朋友可以測試下。

頁面域關系:

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

實現(xiàn)效果:

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

問題本質(zhì):

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

解決方案:

引入代理代理頁面c.html與a.html所屬相同域A,c.html是A域下提供好的中間代理頁面,假設c.html的地址:www.fzitv.net/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; //http://www.fzitv.net/c.html#width|height”
}
</script>

<!–js讀取b.html的寬和高,把讀取到的寬和高設置到和a.html在同一個域的中間代理頁面車c.html的src的hash里面–>
<iframe id=”c_iframe” height=”0″ width=”0″ src=”http://www.fzitv.net/c.html” style=”display:none” ></iframe>

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

<script type=”text/javascript”>
var b_iframe = parent.parent.document.getElementById(”b_iframe”);
var hash_url = window.location.hash;
var hash_width = hash_url.split(”#”)[1].split(”|”)[0]+”px”;
var hash_height = hash_url.split(”#”)[1].split(”|”)[1]+”px”;
b_iframe.style.width = hash_width;
b_iframe.style.height = hash_height;
</script>

a.html中的iframe就可以自適應為b.html的寬和高了.

其他一些類似js跨域操作問題也可以按這個思路去解決

如果不是跨域訪問,可以參考這篇文章。iframe自適應高度的多種方法方法小結

相關文章

最新評論

土默特右旗| 荃湾区| 德惠市| 梁河县| 东台市| 鹰潭市| 宿州市| 奉贤区| 平湖市| 漠河县| 苗栗县| 义乌市| 固原市| 墨玉县| 美姑县| 宁明县| 库伦旗| 磴口县| 天柱县| 庆云县| 丰原市| 惠来县| 桦川县| 隆昌县| 方山县| 义马市| 乌鲁木齐县| 淳化县| 正镶白旗| 兴安盟| 宁阳县| 宽甸| 鄄城县| 呼伦贝尔市| 集安市| 潢川县| 涞源县| 长岭县| 玉环县| 凤阳县| 龙海市|