2013-08-27 109 views
0

我正在開發一個項目,並發現所有頁面都有相同的元素,我想知道是否有任何方法來定義這些元素並從您的html中調用它們以避免必須定義每個元素頁面。非常感謝你的幫助html中的常見元素

+0

共享CSS或共享HTML或兩者兼而有之? – twinlakes

+0

您可以使用服務器端語言(如['PHP'](http://www.php.net)或ASP.NET等)來執行此操作。 – Itay

+2

使用純html的唯一方法是使用Iframe,或通過使用Ajax請求的JavaScript。否則,你將不得不採用服務器端語言,如Itay提到的 –

回答

0

的test.html

<div>Menu</div> 

當你需要有這個菜單,只需要調用這個代碼在你的頁面:

$('#result').load('ajax/test.html', function() { 
    alert('Load was performed.'); 
}); 

load()

另一種選擇可能是AngularJS,或者只是像使用PHP包含的東西。

+0

我會看angulajs感謝 – Josepil

0

我不知道有什麼辦法用純HTML做這件事,但通過在一個小小的服務器端腳本中混合,你可以。只是想給你一個想法是什麼樣的:

這個例子使用PHP。如果您在Microsoft服務器上,則需要將此示例轉換爲.NET或.aspx。


首先,將以下內容保存到與其他頁面相同的文件夾中的名爲「mytest.php」的文件中。 (如果你願意,你可以把它放在一個子文件夾中,但對於這個例子我會保持簡單)。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 

這只是一個測試。有點無用,但你可以看到這一點。

現在,在你的HTML的標籤<head>,你可以做到這一點(我加入了<head>標籤只是讓你可以看到它......你不會希望有兩套<head>標籤。)

<head> 
    <?php include 'mytest.php'; ?> 
</head> 

現在,訪問該頁面並顯示HTML,並且您應該看到將該行整合到HTML中。請注意,任何包含PHP代碼的文檔(如上所示)都必須以.php的擴展名結尾。

+0

不想調用服務器來顯示這些項目,因爲它們是簡單的菜單,並認爲它們放在html中更快,非常感謝您的答案。 – Josepil

0

正如@loops建議的那樣,我會極力推薦AngularJS進行救援。

這是一個很棒的MVC框架,使用JavaScript構建,無需外部依賴。

它提供了用於創建自定義元素的可能性,他們Directives

所以,你可以創建一個新的元素<mymenu></mymenu>,你可以給這個新標籤的一些行爲和事件綁定到它。

AngularJS會處理所有其他問題,並且您的新標記將在應用程序的所有頁面上可用。

是的,你是正確的認爲應該在客戶端而不是服務器端完成。

我很高興爲您提供一個完整的工作示例,一旦您首先了解該框架的頭部。否則,我認爲這將是一次太多的信息;)