搞毛線!測試iframe跨域自適應失敗了!
阿新 • • 發佈:2018-12-29
本來還以為可以成功推出互推聯盟 iframe 雙模式的,自己網站測試成功了,最後發現別人呼叫是不能自適應的,只有我自己的網站可以自適應,鬱悶!!!
下面引用部分是下午辛苦整理的文章,最後發現失敗了,一下就洩氣了,剛釋出的文章不得不先改成草稿狀態,回家又繼續查了半天資料,發現如果要這個 iframe 跨域還能自適應高度,必須要我網站裡面製作針對呼叫者的中間頁面(詳細教程)!
也就是說,只要有一個博友呼叫我的 iframe,我就得製作一個和他域名對應的中間頁,我勒個去,搞毛線啊!
算了, 先不折騰這個東西了,就維持老樣子吧!
原文:《互推聯盟 iframe 推出雙模式》
看到很多聯盟成員建議給這個通用 iframe 模組加上公共評論功能,其實幾天前瑪思閣就試過了,很容易實現,只需要加入呼叫評論的程式碼即可,但是一直在猶豫這個功能會不會對呼叫模組的博友帶來困擾呢?比如,某博友比較喜歡清爽簡單的介面?
好吧, 其實這也不是問題,那瑪思閣就麻煩一點,我做 2 個模板:一個帶評論和文字模組的交流模式;一個僅包含成員列表和底部滾動公告的清爽模式,廢話不多說了,直接上程式碼:
一、交流模式Shell
帶評論以及文字模組的 iframe 程式碼
1234567891011121314151617181920212223 <iframe id="rightFrame" name="rightFrame" scrolling="no" src="http://zhangge.net/alliance" frameborder="0" onload="this.style.height='475px'" style="padding: 0px; width: 100%;"></iframe> <script type="text/javascript" > var browserVersion= window.navigator.userAgent.toUpperCase(); function reinitIframe(){ try{ var iframe=document.getElementById('rightFrame'); var bHeight=0; if(browserVersion.indexOf("CHROME")==-1 && browserVersion.indexOf("SAFARI")==-1) bHeight=iframe.contentWindow.document.body.scrollHeight; var dHeight=0; if(browserVersion.indexOf("FIREFOX")!=-1) dHeight=iframe.contentWindow.document.documentElement.offsetHeight + 2; else if(browserVersion.indexOf("MSIE")==-1 && browserVersion.indexOf("OPERA")==-1) dHeight=iframe.contentWindow.document.documentElement.scrollHeight; else bHeight=bHeight+3; //alert("bHeight="+bHeight+"--dHeight="+dHeight+"--"+browserVersion); var height = Math.max(bHeight, dHeight); iframe.style.height=height+"px"; }catch (ex){} } window.setInterval("reinitIframe()",200); </script>
二、清爽模式Shell
不含評論和文字模組,但底部存在滾動公告(主要用於通知最新活動!)
1234567891011121314151617181920212223 <iframe id="rightFrame" name="rightFrame" scrolling="no" src="http://zhangge.net/bokehutui" frameborder="0" onload="this.style.height='475px'" style="padding: 0px; width: 100%;"></iframe> <script type="text/javascript"> var browserVersion= window.navigator.userAgent.toUpperCase(); function reinitIframe(){ try{ var iframe=document.getElementById('rightFrame'); var bHeight=0; if(browserVersion.indexOf("CHROME")==-1 && browserVersion.indexOf("SAFARI")==-1) bHeight=iframe.contentWindow.document.body.scrollHeight; var dHeight=0; if(browserVersion.indexOf("FIREFOX")!=-1) dHeight=iframe.contentWindow.document.documentElement.offsetHeight + 2; else if(browserVersion.indexOf("MSIE")==-1 && browserVersion.indexOf("OPERA")==-1) dHeight=iframe.contentWindow.document.documentElement.scrollHeight; else bHeight=bHeight+3; //alert("bHeight="+bHeight+"--dHeight="+dHeight+"--"+browserVersion); var height = Math.max(bHeight, dHeight); iframe.style.height=height+"px"; }catch (ex){} } window.setInterval("reinitIframe()",200); </script>
三、使用方法