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的捲軸,動態調整視窗的高度,讓其能夠顯示被嵌套頁的所有內容
agent.html
複製程式碼
複製程式碼
複製程式碼
複製程式碼
程式碼如下:
Insert title here
我是代理頁面哦!
window.onload = invokeMethodInTopWindow;
function invokeMethodInTopWindow() {
//alert("呼叫同域下的函數,重置iframe的高度");
//error://alert(document.parentWindow.parent.name); //存取失敗:不能存取domainB //alert(document.parentWindow.parent.parent. name);//最頂層window屬於domainA,因此可以存取} //使用不同的時間戳設定iframe的src屬性後,就不用使用setInterval() //setInterval("invokeMethodInTopWindow ()",100); 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的內容,這樣使用者名,密碼就輕鬆到手了。