1. 程式人生 > >html 如何引入一個公共的頭部和底部

html 如何引入一個公共的頭部和底部

原文轉自https://yq.aliyun.com/articles/100662?t=t1#

html 靜態頁面中引用外部頁面沒那麼方便,主要方法有:

1.asp語言和PHP語言

首先製作一個頭部檔案head.asp,或者一個底部檔案foot.asp。如主頁是index.asp,呼叫頭部程式碼是在index.asp檔案程式碼的開始位置(第一個標記後面,

標記前面)增加如下程式碼:

<!–  #include file=”head.asp”    –> 

如果是PHP檔案,檔名改為 head.php即可

2.使用框架來實現

<iframe MARGINWIDTH=0 MARGINHEIGHT=0 HSPACE=0 VSPACE=0 FRAMEBORDER=0 SCROLLING=no src=”head.htm” height=“auto” width="100%"></iframe>

以前人們常常使用靜態frame框架來做首尾(一般不是iframe)。現在越來越少見了。主要因為設計網頁相對比較困難,而且還增加了連線數,佔用執行緒較多,速度慢,而且也不利於搜尋引擎的對頭尾的收錄

3.使用.js指令碼來實現

建立一個head.js的檔案,找一個html轉js的網站,然後把你頭部的html程式碼轉化成js程式碼,並放在head.js檔案裡面。然後在需要呼叫head檔案程式碼的地方新增

<script language="javascript" type="text/javascript" src="js/head.js"></script>

這個地方src="js/head.js"的路徑是你head.js檔案的路徑

html轉換為JS:

document.writeln("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");
document.writeln("<html xmlns=\"http://www.w3.org/1999/xhtml\">");
document.writeln("<head>");
document.writeln("<style>");
document.writeln("</style>");
document.writeln("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />");
document.writeln("<title></title>");
document.writeln(" <link href=\'head.css\'  rel=\"stylesheet\" type=\"text/css\" />");
document.writeln("</head>");
document.writeln("<body >");
document.writeln(" <div class=\'miaov_head\'>");
document.writeln("    <ul>");
document.writeln("      <li><a href=\"http://www.cnblogs.com/jtjds/\">Mac</a></li>");
document.writeln("      <li><a href=\"http://www.cnblogs.com/jtjds/\">iPhone</a></li>");
document.writeln("    </ul>");
document.writeln("</div>");
document.writeln(" ");
document.writeln("</body>");
document.writeln("</html>");
document.writeln("");

以後無論在哪個頁面,想呼叫該頭部檔案,直接插入head.js檔案即可

這種方式的優點是方便,便於修改。缺點是由於搜尋引擎讀不懂javascript檔案,頭部檔案和尾部檔案搜尋引擎無法收錄,而且js檔案過大會加重訪問者的瀏覽器負擔,影響訪問速度

4.Behavior的download方式

最好能有一種方法,就像asp頁面包含其他頁面時那樣,用一小段包含語句就可以實現,不要將需要包含的內容出現在本頁面內,而是分割出去到另外一個自己的頁面

<span ><IE:Download STYLE="behavior:url(#default#download)" />
<script>
    function onDownloadDone(downData){
        showImport1.innerHTML=downData
    }
    oDownload1.startDownload('top.htm',onDownloadDone)
</script>

注:包含的頁面為 top.htm 只要把需要包含的頁面改掉就可以了!其中id=showimport 不能改為其他,這種寫法為一次包含一個檔案

5.通過<object>實現

<object type="text/x-scriptlet" data="import.htm" width=100% height=30></object>

6.HTML中執行include file

使用ssi技術頁面生成shtml檔案,只用在頭部檔案位置加入:

SSI(Server Side Include),通常稱為"伺服器端嵌入"或"伺服器端包含",是一種類似於ASP的基於伺服器的網頁製作技術。預設副檔名是 .stm、.shtm 和 .shtml。SSI就是在HTML檔案中,可以通過註釋行呼叫的命令或指標,SSI具有 強大的功能,只要使用一條簡單的SSI命令就可以實現整個網站的內容更新,時間和日期的動態顯示,以及執行shell和CGI指令碼程式等複雜的功能

<!--#include file="library/common_header.html" -->

使用shtml的好處是對搜尋引擎比較友好,需要處理的檔案在伺服器端完成的, 不會加重訪問者的瀏覽器負擔

7.HTML5 中的 <embed> 標籤

<embed type="text/html" src="footer.html" />

8.ajax動態填充

node代理

1:使用ssi技術頁面生成shtml檔案,只用在頭部檔案位置加入,然後修改的時候只要修改header.htm檔案就可以了。使用shtml的好處是對搜尋引擎比較友好,需要處理的檔案在伺服器端完成的,不會加重訪問者的瀏覽器負擔

本地合併

即將HTML硬拆成頭、尾、內容三個部分的檔案,在預覽或者釋出之前用指令碼手工合併,沒有後臺的時候使用效果不錯

9.使用JQuery的load方法


/*匯入頁面*/ 
$(document).ready(function(){ 
$(".top").load("top.html"); 
$(".footer").load("footer.html"); 
}); 
把他寫入到js檔案裡,在需要的頁面匯入就可以了, 

10.ajax動態拉取填充

11.web伺服器(比如IIS)中設定包含

12.後臺模板引擎處理(字串拼接)

13.用圖片、flash等外部資源做---不推薦,比較麻煩

14.angular js裡的的使用

15.使用fis。有html嵌入功能

<link rel="import" href="demo.html?__inline">

LINK[rel=import]其實有點類似於IFRAME,它引用的物件也是一個完整的文件,而不是文件片段,而且裡面的SCRIPT也會執行,對跨域的資源訪問同樣有同源策略的限制

和IFRAME不同的是,它和父文件的關係更密切。它自身確實是一個文件,可以通過link元素上的import屬性訪問,但在其內部的程式碼中,如果訪問document則等同於訪問父文件。這是很奇怪的設定,雖然內部的元素與父文件不在一個DOM樹上(父文件上querySelector無法找到內部的元素),但他們卻共用一個document物件,甚至共用一個全域性環境。這意味著STYLE或SCRIPT之類的標籤所執行的結果會影響到容器