2015-07-10 45 views
0

將HTML片段插入HTML5導入的主HTML文件的正確方法是什麼?將HTML包含到其他帶有Web組件的HTML中

的答案,更通用的問題https://stackoverflow.com/a/22142111/239247提到,這是可以做到的:

<head> 
    <link rel="import" href="header.html"> 
</head> 

但是,這是行不通的。我不需要插入JS和CSS。只有簡單的HTML標記插入在<body>的頂部。什麼是最簡單的方法來做到這一點,並保持HTML可讀性?

+0

你看http://www.w3schools.com/ tags/tag_iframe.asp – Garry

+1

這是實驗性的。你可能不得不採取像http://api.jquery.com/load/ –

回答

0

參見:http://www.w3schools.com/angular/angular_includes.asp

它說:

HTML在未來的HTML包括。不幸的是,在HTML中包括HTML的一部分還沒有被HTML支持。

所以這是在路上,但還沒有到這裏。

編輯:如果你能夠,我會使用PHP,這是接近的清潔程度。我所包含的鏈接顯示了多種方法來做你正在做的事情。

後期編輯:如果它仍然計數(對於那些關於採購擔心):http://caniuse.com/#feat=imports

+0

http://www.w3fools.com/說這個網站不能被信任。 –

+0

@techtonik它一直是我的一個很好的資源。只是說。我沒有看到人們的問題。 – Snappawapa

+0

不確定他們的信息是否是最新的。 –

0

我發現做到這一點的方法是使用ASP.NET和.cshtml文件,並使用剃刀,如下所示: http://weblogs.asp.net/scottgu/asp-net-mvc-3-layouts 除了簡單地將HTML插入到其他HTML中,這也可以讓你有一致的導航欄,頁腳等,並最大限度地減少你的代碼配置文件。此外,佈局文件的使用爲網站提供了一種更好的感覺,因爲當點擊內部鏈接時,只有網站的一部分會刷新,而不是整個網站。

+0

ASP.NET不是HTML5的Web組件標準。 –

0

找到一種方法可以做到這一點從html5rocks,但它遠遠不可讀。這是理想的方式:

<body> 
    <include src="header.html"/> 
</body> 

這是它是如何通過HTML5進口實施:

<head> 
    <link rel="import" href="header.html"> 
</head> 
<body> 
    ... 
    <script> 
    document.body.appendChild(
     document.querySelector('link[rel="import"]') 
     .import 
     .querySelector('body') 
     .cloneNode(true)); 
    </script> 
</body> 

注:

  • 不清楚如何選擇包括如果兩個header.htmlfooter.html是否有
  • querySelector('body')需要避免Uncaught HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type 'BODY'.
  • 不清楚如何插入<body>標籤內容,而不標籤本身
  • HTML5進口不工作在Firefox(38)http://caniuse.com/#feat=imports =/
相關問題