iframe 自適應(yīng)高度也就是說基于界面美觀和交互的考慮,很好的隱藏了iframe的border和scrollbar,讓人看不出它是個(gè)iframe。iframe 自適應(yīng)高度如說是始終都調(diào)用同一個(gè)固定高度的頁(yè)面,我們直接寫死iframe高度就可以了。而如果iframe要切換頁(yè)面,或者被包含頁(yè)面要做DOM動(dòng)態(tài)操作,這時(shí)候,就需要程序去同步iframe高度和被包含頁(yè)的實(shí)際高度了。如果iframe的高度沒有確定,那將是初始的高度。iframe是網(wǎng)頁(yè)中的一部分,其大小還要受到網(wǎng)頁(yè)的限制,設(shè)置最高可以使用height="100%"。基本上解決iframe超出的高度都是增加了滾動(dòng)條來實(shí)現(xiàn)的,很簡(jiǎn)單,如果你iframe中的信息超出了一屏幕,你就必須使用滾動(dòng)條了。開始用的時(shí)候還不行,后來發(fā)現(xiàn)是因?yàn)閖s跨域問題,沒有權(quán)限。后來設(shè)置了window.document.domain 就可以了,用的是jquery代碼2方法。
iframe跨域通信實(shí)現(xiàn)其高度自適應(yīng)解決方案
1、通過 JavaScript獲取 iframe 的內(nèi)容高度。設(shè)置 iframe 的告訴和內(nèi)容高度相同。這種方案在同域的情況下百試不爽,但是缺點(diǎn)是在跨域的情況下,卻無能為力。
2、在 iframe 里面引入一段 js,通過 js 實(shí)時(shí)檢測(cè) iframe 內(nèi)容的高度,發(fā)送到服務(wù)器。嵌入 iframe 的頁(yè)面不停的從服務(wù)器獲取傳過來的 iframe 的高度,并設(shè)置。這種方案,確實(shí)可以解決問題,但是卻有些令人不爽的地方。不停的向服務(wù)器發(fā)送數(shù)據(jù),增加量服務(wù)器的負(fù)擔(dān)。Javasript 不停的請(qǐng)求服務(wù)器,獲取新的高度。這種不停的輪詢,也確實(shí)讓人蛋疼。
3、在上面的基礎(chǔ)上如果能避開服務(wù)器,不失為是一種好方法,但是如何才能避開服務(wù)器呢?
關(guān)鍵詞: iframe自適應(yīng)高度指的是什么 iframe跨域通信實(shí)現(xiàn)其高度自適應(yīng)解決方案 前端iframe跨域 iframe跨域被瀏覽器攔截