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

iframe窗口高度自適應(yīng)的又一個(gè)巧妙實(shí)現(xiàn)思路

 更新時(shí)間:2014年04月04日 11:44:20   作者:  
這篇文章主要介紹了實(shí)現(xiàn)iframe窗口高度自適應(yīng)的又一個(gè)巧妙思路,需要的朋友可以參考下
domainA 中有一個(gè)頁(yè)面index.html,通過(guò)iframe嵌套了domainB中的一個(gè)頁(yè)面other.html
由于other.html頁(yè)面在iframe中顯示,而且其頁(yè)面內(nèi)容會(huì)動(dòng)態(tài)的增加或減少,現(xiàn)在需要去掉iframe的滾動(dòng)條
由于javascript同源策略的限制,無(wú)法進(jìn)行跨域操作,使得問(wèn)題比較棘手
參考了一下網(wǎng)上的做法,引入了一個(gè)代理頁(yè)面,或者叫做中介 agent.html,屬于domainA
然后,在domainB 中的other.html中,再使用iframe將agent.html進(jìn)行嵌套

好了,現(xiàn)在情況是這樣的:

index.html 使用iframe 嵌套 other.html
other.html 使用iframe 嵌套 agent.html
之所以要引入第3個(gè)頁(yè)面agent.html,就是為了遵守“同源策略”的規(guī)則,完成不同domain下參數(shù)的傳遞!

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

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

index.html
復(fù)制代碼 代碼如下:

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

<hr>

<div style="color:red;font-weight:bold">窗口自適應(yīng)---繞開同源策略的限制,同時(shí)又利用同源策略,去掉iframe的滾動(dòng)條,動(dòng)態(tài)調(diào)整窗口的高度,讓其能夠顯示被嵌套頁(yè)面的所有內(nèi)容</div>
<!-- 需要?jiǎng)討B(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>
我是代理頁(yè)面哦!
<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); //訪問(wèn)失敗 :不能訪問(wèn)domainB
//alert(document.parentWindow.parent.parent.name);//最頂層window屬于domainA,因此可以訪問(wèn)
}
//使用不同的時(shí)間戳設(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域所嵌入的頁(yè)面 -->
<button type="button" onclick="btnClick()">切換顯示</button>

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

<!-- 反向嵌入A域的頁(yè)面 -->
<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");
//獲取本頁(yè)面的高度
var scrollHeight = document.documentElement.scrollHeight;
//alert("滾動(dòng)條高度:"+scrollHeight);
//將窗口的高度先設(shè)置到屬于domainA的iframe的src屬性上
var iframeDomainA = document.getElementsByName("domainA")[0];
//用domainA的一個(gè)頁(yè)面作為代理,最終的目的是解決“同源策略”的限制
var url = "http://localhost:9000/agent";
/**技巧:通過(guò)時(shí)間戳讓瀏覽器每次重新加載iframe,這樣每次都會(huì)自動(dòng)設(shè)置被嵌套的iframe的高度,避免了使用setInterval()*/
iframeDomainA.src = url+ "? time=" + new Date().getTime() + "#" + scrollHeight ;
}

window.onload = proxy;

</script>

</body>
</html>

相關(guān)文章

  • bootstrapfileinput實(shí)現(xiàn)文件自動(dòng)上傳

    bootstrapfileinput實(shí)現(xiàn)文件自動(dòng)上傳

    這篇文章主要介紹了bootstrapfileinput實(shí)現(xiàn)文件自動(dòng)上傳,bootstrap fileinput插件對(duì)多種類型的文件提供文件預(yù)覽,并且提供了多選等功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • ES6新增的數(shù)組知識(shí)實(shí)例小結(jié)

    ES6新增的數(shù)組知識(shí)實(shí)例小結(jié)

    這篇文章主要介紹了ES6新增的數(shù)組知識(shí),結(jié)合實(shí)例形式分析了ES6的數(shù)組新增知識(shí)點(diǎn)、使用技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2020-05-05
  • 解決火狐瀏覽器下JS setTimeout函數(shù)不兼容失效不執(zhí)行的方法

    解決火狐瀏覽器下JS setTimeout函數(shù)不兼容失效不執(zhí)行的方法

    今天檢查自己用JQuery+AJAX+PHP做的網(wǎng)站后臺(tái)登錄檢測(cè),愛(ài)其他瀏覽器中兼容性還不錯(cuò) 結(jié)果到了火狐(FireFox)瀏覽器下setTimeout這個(gè)JS內(nèi)置函數(shù)不執(zhí)行了,本文將提供詳細(xì)的解決方法
    2012-11-11
  • JavaScript中Location.search處理使用方法

    JavaScript中Location.search處理使用方法

    本文主要介紹了JavaScript中Location.search處理使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • JS調(diào)用Android、Ios原生控件

    JS調(diào)用Android、Ios原生控件

    本文主要介紹了JS調(diào)用Android、Ios通信的相同點(diǎn)和不同點(diǎn),以便幫助我們?cè)谶M(jìn)行混合式開發(fā)時(shí),提高代碼質(zhì)量,實(shí)現(xiàn)兩者在網(wǎng)頁(yè)端代碼的統(tǒng)一。下面跟著小編一起來(lái)看下吧
    2017-01-01
  • JavaScript利用切片實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳

    JavaScript利用切片實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳

    斷點(diǎn)續(xù)傳即在文件上傳期間因?yàn)橐恍┰蚨鴮?dǎo)致上傳終止時(shí),下次再次上傳同一個(gè)文件就從上一次上傳到一半的地方繼續(xù)上傳,以節(jié)省上傳時(shí)間。本文將利用切片實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳功能,快來(lái)跟隨小編一起學(xué)一學(xué)吧
    2022-03-03
  • javascript管中窺豹 形參與實(shí)參淺析

    javascript管中窺豹 形參與實(shí)參淺析

    本想從語(yǔ)言的角度來(lái)分析,無(wú)奈功力不夠,只能粗淺的嘗試一下,于是稱之管中窺豹,還望大牛指正
    2011-12-12
  • 用JavaScript實(shí)現(xiàn) 鐵甲無(wú)敵獎(jiǎng)門人 “開口中”猜數(shù)游戲

    用JavaScript實(shí)現(xiàn) 鐵甲無(wú)敵獎(jiǎng)門人 “開口中”猜數(shù)游戲

    JavaScript在常人看來(lái)都是門出不了廳堂的小語(yǔ)言,僅管它沒(méi)有明星語(yǔ)言的閃耀,但至少網(wǎng)頁(yè)的閃耀還是需要它的,同時(shí)它是一門很實(shí)用的語(yǔ)言。
    2009-10-10
  • javascript dom 操作詳解 js加強(qiáng)

    javascript dom 操作詳解 js加強(qiáng)

    javascript dom 操作詳解 js加強(qiáng)操作實(shí)現(xiàn)代碼。
    2009-07-07
  • javascript的閉包介紹(司徒正美)

    javascript的閉包介紹(司徒正美)

    今天又在無(wú)憂看到閉包的使用了,整理一下閉包的東西。
    2011-09-09

最新評(píng)論

民县| 麟游县| 文登市| 白城市| 涿鹿县| 胶南市| 塔城市| 宜章县| 安阳市| 长沙市| 迭部县| 神池县| 通化市| 陆川县| 夹江县| 灌南县| 抚顺市| 平邑县| 龙游县| 平原县| 临澧县| 敦化市| 龙海市| 宁晋县| 亚东县| 仙桃市| 浙江省| 台南县| 洛宁县| 井陉县| 达日县| 尤溪县| 乌鲁木齐县| 新竹县| 荆州市| 和顺县| 武陟县| 株洲县| 金乡县| 久治县| 铜川市|