閱讀992 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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

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

asp語言和PHP語言

首先製作一個頭部文件head.asp,或者一個底部文件foot.asp。如主頁是index.asp,調用頭部代碼是在index.asp文件代碼的開始位置(第一個標記後麵,

標記前麵)增加如下代碼:
<!–  #include file=”head.asp”    –> 

如果是PHP文件,文件名改為 head.php即可

使用框架來實現

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

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

使用.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\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");
document.writeln("<html xmlns=\"https://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=\"https://www.cnblogs.com/jtjds/\">Mac</a></li>");
document.writeln("      <li><a href=\"https://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文件過大會加重訪問者的瀏覽器負擔,影響訪問速度

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 不能改為其他,這種寫法為一次包含一個文件

通過<object>實現

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

HTML中執行include file

使用ssi技術頁麵生成shtml文件,隻用在頭部文件位置加入:

SSI(Server Side Include),通常稱為"服務器端嵌入"或"服務器端包含",是一種類似於ASP的基於服務器的網頁製作技術。默認擴展名是 .stm、.shtm 和 .shtml。SSI就是在HTML文件中,可以通過注釋行調用的命令或指針,SSI具有 強大的功能,隻要使用一條簡單的SSI命令就可以實現整個網站的內容更新,時間和日期的動態顯示,以及執行shell和CGI腳本程序等複雜的功能

<!--#include  -->

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

HTML5 中的 <embed> 標簽

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

ajax動態填充

node代理

1:使用ssi技術頁麵生成shtml文件,隻用在頭部文件位置加入<!--#include -->,然後修改的時候隻要修改header.htm文件就可以了。使用shtml的好處是對搜索引擎比較友好,需要處理的文件在服務器端完成的,不會加重訪問者的瀏覽器負擔

本地合並

即將HTML硬拆成頭、尾、內容三個部分的文件,在預覽或者發布之前用腳本手工合並,沒有後台的時候使用效果不錯

ajax動態拉取填充

web服務器(比如IIS)中設定包含

後台模板引擎處理(字符串拚接)

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

angular js裏的的使用

使用fis。有html嵌入功能

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

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

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

最後更新:2017-06-13 18:01:44

  上一篇:go  6月13日雲棲精選夜讀:數夢工場完成A輪7.5億融資 三個維度構建“新型互聯網”
  下一篇:go  STS(Eclipse)+Maven將war項目部署到遠程的tomcat