iframe的用法


有人說,iframe是能耗最高的一個元素,盡量減少使用。

也有人說,iframe的安全性太差,盡量減少使用。

  

  雖然他們說的是真的,但是iframe的強大功能是不容忽視的,而且現在不乏公司正在使用它。

 

  <iframe> 標簽規定一個內聯框架。一個內聯框架被用來在當前 HTML 文檔中嵌入另一個文檔。

  所有的主流瀏覽器都支持<iframe>標簽。你可以把提示的文字放到 <iframe> 和 </iframe>里面,這樣不支持 <iframe>的瀏覽器就會出現提示的文字。

 

iframe 如何使用呢?

通常我們使用iframe直接在頁面嵌套iframe標簽指定的src就可以了。

比如:

 

    <!-- 
        <iframe> 標簽規定一個內聯框架
     這里寫p 標簽是為了看align的效果
--> <p style="overflow: hidden;">這是一些文本。 這是一些文本。 這是一些文本。這是一些文本。 這是一些文本。 這是一些文本。 <iframe name="myiframe" id="myrame" src="external_file.html" frameborder="0" align="left" width="200" height="200" scrolling="no"> <p>你的瀏覽器不支持iframe標簽</p> </iframe> 這是一些文本。 這是一些文本。 這是一些文本。這是一些文本。 這是一些文本。 這是一些文本。</p>

 

 

iframe 的常用屬性:

   name :  規定 <iframe> 的名稱。
        width: 規定 <iframe> 的寬度。
        height :規定 <iframe> 的高度。
        src :規定在 <iframe> 中顯示的文檔的 URL。
        frameborder : 規定是否顯示 <iframe> 周圍的邊框。 (0為無邊框,1位有邊框)。
        align :  規定如何根據周圍的元素來對齊 <iframe>。 (left,right,top,middle,bottom)。
        scrolling : 規定是否在 <iframe> 中顯示滾動條。 (yes,no,auto)

 

上面代碼中 iframe的src屬性為自己本地的一個html頁面

代碼如下:

<body>
    <div id="div" style="height: 300px; background: #ddd;">這是一個外部文件里面的內容</div>
</body>
<script>
    var div = document.getElementById("div");
    console.log(div);
</script>

有什么交互的部分也是寫到這個頁面中,iframe會自動傳到引入的頁面的。

 

那如何獲取iframe里面的內容呢?

    var iframe = document.getElementById("myrame"); //獲取iframe標簽
    var iwindow = iframe.contentWindow; //獲取iframe的window對象
    var idoc = iwindow.document; //獲取iframe的document對象
    console.log(idoc.documentElement); //獲取iframe的html
    console.log("body",idoc.body);

但是,這里面是獲取不到里面的DOM的,可以在URL中獲取(也就是引入的html文件)

 

iframe 的優缺點

優點:

  重載頁面時不需要重載整個頁面,只需要重載頁面中的一個框架頁(減少數據的傳輸,減少網頁的加載時間);

  技術簡單,使用方便,主要應用於不需要搜索引擎來搜索的頁面;

  方便開發,減少代碼的重復率(比如頁面的header,footer);

缺點:

  會產生很多的頁面,不易於管理;

  不易打印;

  多框架的頁面會增加服務氣得http請求;

  瀏覽器的后退按鈕無效等;

  由於諸多的缺點,不符合標准網頁設計的理念,已經被拋棄,目前的HTML5不再支持此標簽。

 

 查看 frame 的基本用法

 

 

  

關注公眾號

免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2023 CODEPRJ.COM