首頁  >  文章  >  web前端  >  iframe視窗高度自適應的實作方法_javascript技巧

iframe視窗高度自適應的實作方法_javascript技巧

WBOY
WBOY原創
2016-05-16 17:04:491140瀏覽

domainA 中有一個頁面index.html,透過iframe嵌套了domainB中的一個頁面other.html
由於other.html頁面在iframe中顯示,而且其頁面內容會動態的增加或減少,現在需要去掉iframe的捲軸
由於javascript同源策略的限制,無法進行跨域操作,使得問題比較棘手
參考了一下網上的做法,引入了一個代理頁面,或者叫做中介agent.html,屬於domainA
然後,在domainB 中的other.html中,再使用iframe將agent.html進行嵌套

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

我們最終的目的是要去掉捲軸,又要確保被嵌入的頁面內容全部得到顯示
1.取得other.html頁面的實際高度height
2.將height設定到其嵌入的iframe的src屬性上
3.在agent.html中截取出所屬iframe的src屬性中的height值

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

複製代碼 代碼如下:

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


視窗自適應---繞過同源策略的限制,同時又利用同源策略,去掉iframe的捲軸,動態調整視窗的高度,讓其能夠顯示被嵌套頁面的所有內容



   
div>



agent.html

複製程式碼 代碼如下:




🎜>

Insert title here


    我是代理頁面哦!




domainB中的other.html

複製程式碼 程式碼如下:





Insert title here


   
   

   

        在JavaScript中,有一个很重要的安全性限制,被称为“Same-Origin Policy”(同源策略)。
        这一策略对于JavaScript代码能够访问的页面内容做了很重要的限制,即JavaScript只能访问与包含它的文档在同一域下的内容。
        所谓同源是指,域名,协议,端口相同。
        在JavaScript中,有一个很重要的安全性限制,被称为“Same-Origin Policy”(同源策略)。
        这一策略对于JavaScript代码能够访问的页面内容做了很重要的限制,即JavaScript只能访问与包含它的文档在同一域下的内容。
        所谓同源是指,域名,协议,端口相同。
        在JavaScript中,有一个很重要的安全性限制,被称为“Same-Origin Policy”(同源策略)。
        这一策略对于JavaScript代码能够访问的页面内容做了很重要的限制,即JavaScript只能访问与包含它的文档在同一域下的内容。
        所谓同源是指,域名,协议,端口相同。
        在JavaScript中,有一个很重要的安全性限制,被称为“Same-Origin Policy”(同源策略)。
        这一策略对于JavaScript代码能够访问的页面内容做了很重要的限制,即JavaScript只能访问与包含它的文档在同一域下的内容。
        所谓同源是指,域名,协议,端口相同。
        在JavaScript中,有一个很重要的安全性限制,被称为“Same-Origin Policy”(同源策略)。
        这一策略对于JavaScript代码能够访问的页面内容做了很重要的限制,即JavaScript只能访问与包含它的文档在同一域下的内容。
        所谓同源是指,域名,协议,端口相同。
        在JavaScript中,有一个很重要的安全性限制,被称为“Same-Origin Policy”(同源策略)。
        这一策略对于JavaScript代码能够访问的页面内容做了很重要的限制,即JavaScript只能访问与包含它的文档在同一域下的内容。
        所谓同源是指,域名,协议,端口相同。
        在JavaScript中,有一个很重要的安全性限制,被称为“Same-Origin Policy”(同源策略)。
        这一策略对于JavaScript代码能够访问的页面内容做了很重要的限制,即JavaScript只能访问与包含它的文档在同一域下的内容。
        所谓同源是指,域名,协议,端口相同。
        在JavaScript中,有一个很重要的安全性限制,被称为“Same-Origin Policy”(同源策略)。
        这一策略对于JavaScript代码能够访问的页面内容做了很重要的限制,即JavaScript只能访问与包含它的文档在同一域下的内容。
        所谓同源是指,域名,协议,端口相同。
        在JavaScript中,有一个很重要的安全性限制,被称为“Same-Origin Policy”(同源策略)。
        这一策略对于JavaScript代码能够访问的页面内容做了很重要的限制,即JavaScript只能访问与包含它的文档在同一域下的内容。
        所谓同源是指,域名,协议,端口相同。
   

   

        比如一个黑客程序,他利用IFrame把真正的银行登录页面嵌到他的页面上,当你使用真实的用户名,密码登录时,
        他的页面就可以通过Javascript读取到你的表单中input中的内容,这样用户名,密码就轻松到手了。
        比如一个黑客程序,他利用IFrame把真正的银行登录页面嵌到他的页面上,当你使用真实的用户名,密码登录时,
        他的页面就可以通过Javascript读取到你的表单中input中的内容,这样用户名,密码就轻松到手了。
        比如一个黑客程序,他利用IFrame把真正的银行登录页面嵌到他的页面上,当你使用真实的用户名,密码登录时,
        他的页面就可以通过Javascript读取到你的表单中input中的内容,这样用户名,密码就轻松到手了。
        比如一个黑客程序,他利用IFrame把真正的银行登录页面嵌到他的页面上,当你使用真实的用户名,密码登录时,
        他的页面就可以通过Javascript读取到你的表单中input中的内容,这样用户名,密码就轻松到手了。
        比如一个黑客程序,他利用IFrame把真正的银行登录页面嵌到他的页面上,当你使用真实的用户名,密码登录时,
        他的页面就可以通过Javascript读取到你的表单中input中的内容,这样用户名,密码就轻松到手了。
        比如一个黑客程序,他利用IFrame把真正的银行登录页面嵌到他的页面上,当你使用真实的用户名,密码登录时,
        他的页面就可以通过Javascript读取到你的表单中input中的内容,这样用户名,密码就轻松到手了。
        比如一个黑客程序,他利用IFrame把真正的银行登录页面嵌到他的页面上,当你使用真实的用户名,密码登录时,
        他的页面就可以通过Javascript读取到你的表单中input中的内容,这样用户名,密码就轻松到手了。
        比如一个黑客程序,他利用IFrame把真正的银行登录页面嵌到他的页面上,当你使用真实的用户名,密码登录时,
        他的页面就可以通过Javascript读取到你的表单中input中的内容,这样用户名,密码就轻松到手了。
   


   
   

   
   
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn