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

iframe窗口高度自適應(yīng)的實現(xiàn)方法

 更新時間:2014年01月08日 14:49:09   作者:  
這篇文章主要介紹了iframe窗口高度自適應(yīng)的實現(xiàn)方法,有需要的朋友可以參考一下

domainA 中有一個頁面index.html,通過iframe嵌套了domainB中的一個頁面other.html
由于other.html頁面在iframe中顯示,而且其頁面內(nèi)容會動態(tài)的增加或減少,現(xiàn)在需要去掉iframe的滾動條
由于javascript同源策略的限制,無法進行跨域操作,使得問題比較棘手
參考了一下網(wǎng)上的做法,引入了一個代理頁面,或者叫做中介 agent.html,屬于domainA
然后,在domainB 中的other.html中,再使用iframe將agent.html進行嵌套

好了,現(xiàn)在情況是這樣的:
index.html 使用iframe 嵌套 other.html
other.html 使用iframe 嵌套 agent.html
之所以要引入第3個頁面agent.html,就是為了遵守“同源策略”的規(guī)則,完成不同domain下參數(shù)的傳遞!

我們最終的目的是要去掉滾動條,又要保證被嵌入的頁面內(nèi)容全部得到顯示
1.取得other.html頁面的實際高度height
2.將height設(shè)置到其嵌入的iframe的src屬性上
3.在agent.html中截取出所屬iframe的src屬性中的height值

下面的例子中,使用了一個技巧,避免了使用setInterval()不斷去設(shè)置iframe的高度
做法是在iframe的src上,附加一個時間戳,讓瀏覽器每次都重新加載agent.html
進而讓agent.hml中的js函數(shù)invokeMethodInTopWindow()得到執(zhí)行
domainA 中的2個html
index.html

復(fù)制代碼 代碼如下:

#{extends 'main.html' /}
#{set title:'Home' /}

<hr>

<div style="color:red;font-weight:bold">窗口自適應(yīng)---繞開同源策略的限制,同時又利用同源策略,去掉iframe的滾動條,動態(tài)調(diào)整窗口的高度,讓其能夠顯示被嵌套頁面的所有內(nèi)容</div>
<!-- 需要動態(tài)調(diào)整高度的iframe -->
<div style="text-align:center;">
    <iframe name="domainB" src="http://127.0.0.1:8088/other" width="80%" scrolling="no" frameborder="0"></iframe>
</div>

<script type="text/javascript">
    function resize(height) {
        //alert("resize");
        document.getElementsByName("domainB")[0].height=height;
    }
</script>

agent.html

復(fù)制代碼 代碼如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    我是代理頁面哦!
<script type="text/javascript">
    window.onload = invokeMethodInTopWindow;
    function invokeMethodInTopWindow() {
        //alert("調(diào)用同域下的函數(shù),重置iframe的高度");
        var domainA = document.parentWindow;
        var realHeight = domainA.location.hash.split("#")[1];
        //last step:調(diào)用最上層窗口的函數(shù),重置iframe的高度
        parent.parent.resize(realHeight);

        //alert("realHeight:"+realHeight);
        //alert(document.parentWindow.name);//獲取容器所在窗口的名稱 domainA
        //error://alert(document.parentWindow.parent.name); //訪問失敗 :不能訪問domainB
        //alert(document.parentWindow.parent.parent.name);//最頂層window屬于domainA,因此可以訪問
    }
    //使用不同的時間戳設(shè)置iframe的src屬性后,就不用使用setInterval()
    //setInterval("invokeMethodInTopWindow()",100);
</script>
</body>
</html>

domainB中的other.html

復(fù)制代碼 代碼如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body onclick="proxy()">
    <!-- 被A域所嵌入的頁面 -->
    <button type="button" onclick="btnClick()">切換顯示</button>

    <div style="display:none">
        在JavaScript中,有一個很重要的安全性限制,被稱為“Same-Origin Policy”(同源策略)。
        這一策略對于JavaScript代碼能夠訪問的頁面內(nèi)容做了很重要的限制,即JavaScript只能訪問與包含它的文檔在同一域下的內(nèi)容。
        所謂同源是指,域名,協(xié)議,端口相同。
        在JavaScript中,有一個很重要的安全性限制,被稱為“Same-Origin Policy”(同源策略)。
        這一策略對于JavaScript代碼能夠訪問的頁面內(nèi)容做了很重要的限制,即JavaScript只能訪問與包含它的文檔在同一域下的內(nèi)容。
        所謂同源是指,域名,協(xié)議,端口相同。
        在JavaScript中,有一個很重要的安全性限制,被稱為“Same-Origin Policy”(同源策略)。
        這一策略對于JavaScript代碼能夠訪問的頁面內(nèi)容做了很重要的限制,即JavaScript只能訪問與包含它的文檔在同一域下的內(nèi)容。
        所謂同源是指,域名,協(xié)議,端口相同。
        在JavaScript中,有一個很重要的安全性限制,被稱為“Same-Origin Policy”(同源策略)。
        這一策略對于JavaScript代碼能夠訪問的頁面內(nèi)容做了很重要的限制,即JavaScript只能訪問與包含它的文檔在同一域下的內(nèi)容。
        所謂同源是指,域名,協(xié)議,端口相同。
        在JavaScript中,有一個很重要的安全性限制,被稱為“Same-Origin Policy”(同源策略)。
        這一策略對于JavaScript代碼能夠訪問的頁面內(nèi)容做了很重要的限制,即JavaScript只能訪問與包含它的文檔在同一域下的內(nèi)容。
        所謂同源是指,域名,協(xié)議,端口相同。
        在JavaScript中,有一個很重要的安全性限制,被稱為“Same-Origin Policy”(同源策略)。
        這一策略對于JavaScript代碼能夠訪問的頁面內(nèi)容做了很重要的限制,即JavaScript只能訪問與包含它的文檔在同一域下的內(nèi)容。
        所謂同源是指,域名,協(xié)議,端口相同。
        在JavaScript中,有一個很重要的安全性限制,被稱為“Same-Origin Policy”(同源策略)。
        這一策略對于JavaScript代碼能夠訪問的頁面內(nèi)容做了很重要的限制,即JavaScript只能訪問與包含它的文檔在同一域下的內(nèi)容。
        所謂同源是指,域名,協(xié)議,端口相同。
        在JavaScript中,有一個很重要的安全性限制,被稱為“Same-Origin Policy”(同源策略)。
        這一策略對于JavaScript代碼能夠訪問的頁面內(nèi)容做了很重要的限制,即JavaScript只能訪問與包含它的文檔在同一域下的內(nèi)容。
        所謂同源是指,域名,協(xié)議,端口相同。
        在JavaScript中,有一個很重要的安全性限制,被稱為“Same-Origin Policy”(同源策略)。
        這一策略對于JavaScript代碼能夠訪問的頁面內(nèi)容做了很重要的限制,即JavaScript只能訪問與包含它的文檔在同一域下的內(nèi)容。
        所謂同源是指,域名,協(xié)議,端口相同。
    </div>
    <div style="display:block">
        比如一個黑客程序,他利用IFrame把真正的銀行登錄頁面嵌到他的頁面上,當(dāng)你使用真實的用戶名,密碼登錄時,
        他的頁面就可以通過Javascript讀取到你的表單中input中的內(nèi)容,這樣用戶名,密碼就輕松到手了。
        比如一個黑客程序,他利用IFrame把真正的銀行登錄頁面嵌到他的頁面上,當(dāng)你使用真實的用戶名,密碼登錄時,
        他的頁面就可以通過Javascript讀取到你的表單中input中的內(nèi)容,這樣用戶名,密碼就輕松到手了。
        比如一個黑客程序,他利用IFrame把真正的銀行登錄頁面嵌到他的頁面上,當(dāng)你使用真實的用戶名,密碼登錄時,
        他的頁面就可以通過Javascript讀取到你的表單中input中的內(nèi)容,這樣用戶名,密碼就輕松到手了。
        比如一個黑客程序,他利用IFrame把真正的銀行登錄頁面嵌到他的頁面上,當(dāng)你使用真實的用戶名,密碼登錄時,
        他的頁面就可以通過Javascript讀取到你的表單中input中的內(nèi)容,這樣用戶名,密碼就輕松到手了。
        比如一個黑客程序,他利用IFrame把真正的銀行登錄頁面嵌到他的頁面上,當(dāng)你使用真實的用戶名,密碼登錄時,
        他的頁面就可以通過Javascript讀取到你的表單中input中的內(nèi)容,這樣用戶名,密碼就輕松到手了。
        比如一個黑客程序,他利用IFrame把真正的銀行登錄頁面嵌到他的頁面上,當(dāng)你使用真實的用戶名,密碼登錄時,
        他的頁面就可以通過Javascript讀取到你的表單中input中的內(nèi)容,這樣用戶名,密碼就輕松到手了。
        比如一個黑客程序,他利用IFrame把真正的銀行登錄頁面嵌到他的頁面上,當(dāng)你使用真實的用戶名,密碼登錄時,
        他的頁面就可以通過Javascript讀取到你的表單中input中的內(nèi)容,這樣用戶名,密碼就輕松到手了。
        比如一個黑客程序,他利用IFrame把真正的銀行登錄頁面嵌到他的頁面上,當(dāng)你使用真實的用戶名,密碼登錄時,
        他的頁面就可以通過Javascript讀取到你的表單中input中的內(nèi)容,這樣用戶名,密碼就輕松到手了。
    </div>

    <!-- 反向嵌入A域的頁面 -->
    <iframe name="domainA" src="" style="display:none"></iframe>

    <!-- script -->
    <script type="text/javascript">
        //隱藏或顯示div
        function btnClick() {
            var div = document.getElementsByTagName("div");
            for(var i in div) {
                if(i<div.length)               
                    div[i].style.display = (div[i].style.display == 'none') ? "block" : "none";
            }
        }
    </script>

    <script type="text/javascript">
        function proxy(){
            //alert("btn click");
            //獲取本頁面的高度
            var scrollHeight = document.documentElement.scrollHeight;
            //alert("滾動條高度:"+scrollHeight);
            //將窗口的高度先設(shè)置到屬于domainA的iframe的src屬性上
            var iframeDomainA = document.getElementsByName("domainA")[0];
            //用domainA的一個頁面作為代理,最終的目的是解決“同源策略”的限制 
            var url = "http://localhost:9000/agent";
            /**技巧:通過時間戳讓瀏覽器每次重新加載iframe,這樣每次都會自動設(shè)置被嵌套的iframe的高度,避免了使用setInterval()*/
            iframeDomainA.src = url+ "? time=" + new Date().getTime() + "#" + scrollHeight ;
        }

        window.onload = proxy;

    </script>

</body>
</html>

相關(guān)文章

  • 微信小程序 云開發(fā)模糊查詢實現(xiàn)解析

    微信小程序 云開發(fā)模糊查詢實現(xiàn)解析

    這篇文章主要介紹了微信小程序 云開發(fā)模糊查詢實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • js獲取域名的方法

    js獲取域名的方法

    這篇文章主要介紹了js獲取域名的方法,涉及window.location中常見方法的使用技巧,需要的朋友可以參考下
    2015-01-01
  • js?實現(xiàn)picker?選擇器示例詳解

    js?實現(xiàn)picker?選擇器示例詳解

    這篇文章主要為大家介紹了js?實現(xiàn)picker?選擇器示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • IE6-IE9不支持table.innerHTML的解決方法分享

    IE6-IE9不支持table.innerHTML的解決方法分享

    讓ie6-ie9支持table.innerHTML,其實這里只是對table做了處理,對其他不支持的元素可以用類似的方案
    2012-09-09
  • 怎樣在CocosCreator中使用游戲手柄

    怎樣在CocosCreator中使用游戲手柄

    這篇文章主要介紹了怎樣使用CocosCreator的游戲手柄,每一個步驟都挺詳細,資源可以隨便找一些,希望同學(xué)們看完,一定要試一下
    2021-04-04
  • 簡單實現(xiàn)bootstrap選項卡效果

    簡單實現(xiàn)bootstrap選項卡效果

    這篇文章主要為大家詳細介紹了如何簡單實現(xiàn)bootstrap選項卡效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • 一道關(guān)于JavaScript變量作用域的面試題

    一道關(guān)于JavaScript變量作用域的面試題

    這篇文章主要為大家介紹了一道關(guān)于JavaScript變量作用域的面試題,如何解決這道面試題,感興趣的小伙伴們可以參考一下
    2016-03-03
  • 詳解關(guān)于webpack多入口熱加載很慢的原因

    詳解關(guān)于webpack多入口熱加載很慢的原因

    這篇文章主要介紹了詳解關(guān)于webpack多入口熱加載很慢的原因,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04
  • 微信小程序 扭蛋抽獎機css3動畫實現(xiàn)詳解

    微信小程序 扭蛋抽獎機css3動畫實現(xiàn)詳解

    這篇文章主要介紹了微信小程序 扭蛋抽獎機css3動畫實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • 10個JavaScript代碼使用技巧速覽

    10個JavaScript代碼使用技巧速覽

    這篇文章主要為大家整理了10個JavaScript代碼使用技巧,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-12-12

最新評論

泰兴市| 布尔津县| 盐城市| 方城县| 探索| 宁南县| 昌平区| 贵阳市| 阳山县| 韶山市| 琼中| 垫江县| 曲阜市| 永泰县| 长春市| 桂阳县| 青州市| 伊金霍洛旗| 孙吴县| 游戏| 微山县| 栾城县| 班戈县| 莆田市| 万安县| 云南省| 壤塘县| 南投市| 红原县| 达州市| 达尔| 项城市| 嘉义市| 聂荣县| 沈阳市| 葫芦岛市| 肇源县| 土默特右旗| 德格县| 翼城县| 丘北县|