2010-05-11 104 views
3

我想在一個div中調用另一個html頁面。從另一個調用另一個html文件

我嘗試使用

<include file="NavigationTree.html" /> 

<? include("/starfix/pages/NavigationTree.html"); ?> 

但它不工作。 我做錯了什麼或者我需要以其他方式做嗎?

+1

...「呼叫」?如何,祈禱告訴,你是否這樣做? – 2010-05-11 09:58:30

回答

-1

您可以使用iframe爲,例如:

<iframe width="500" height="300" frameborder="no" scrolling="no" marginheight="0" marginwidth="0" 
src="http://www.example.com/page.html"></iframe> 
+1

這很方便,但有缺點:它不會與外部文檔共享DOM,最重要的是,它不能自動調整大小以適應iframed頁面的內容。 – 2010-05-11 10:00:34

6

你可能要考慮使用Server Side Includes(SSI)。

你將使你的HTML代碼插入一個單獨的文件,如NavigationTree.html,然後你就只需使用引用它在你的網頁:

<!--#include virtual="NavigationTree.html" --> 

SSI是由所有流行的Web服務器的支持,包括Apache,IIS和lighttpd。


請注意,如果您使用的是共享主機,您可能需要使用.shtml.stm,或.shtm擴展SSI工作。如果您具有對Web服務器的root訪問權限,則可以輕鬆配置它以爲任何擴展程序啓用SSI,包括html

+1

+1如果它在具有'.html'擴展名的頁面中工作,則這比PHP方法更勝一籌。即使不這樣做,最好將'html'文件添加到SSI文件類型列表中,而不是添加到PHP解析的文件類型列表中。 – 2010-05-11 10:12:23

3

這在純HTML中是不可能的。

前者是我從未見過的符號,它不是HTML,也許它適用於某些特定的服務器端模板語言。

後者是PHP。它應該可以工作,但您需要牢記include()絕對與服務器文件系統內部的路徑。

您應指定相對路徑:

<? include("./NavigationTree.html"); // will work if it's in the same directory ?> 

或絕對的,可能會是這個樣子:

<? include("/path/to/your/www/dir/starfix/pages/NavigationTree.html"); ?> 

(請您向您的Web根目錄的絕對路徑管理)你可以也可以做一個HTTP包括:

但這是不明智的,因爲它往往很慢,並在每個頁面請求上生成第二個請求。

您還可以按@Daniel所述使用SSI。

+2

不放*路徑*不會*查看當前目錄。它會迫使PHP通過include_path尋找包含。通常情況下'.'就在其中,但如果情況並非如此,那麼將不會找到include,否則將使用錯誤的include。最好總是放一個明確的路徑,比如'./ NavigationTree.html'。 – 2010-05-11 10:09:35

+0

@Ignacio你是對的。我會添加該信息。 – 2010-05-11 10:10:36

0

你也可以使用jQuery,

例如,

<div id="yourDiv" /> 
<script> 
$("#yourDiv").load("NameOfYourPageToReadFrom.ext #NameOfDivToReadFrom"); 
</script> 

這使內容的「NameOfDivToReadFrom」 DIV在文件名爲「」 NameOfYourPageToReadFrom」到當前文件加載DIV(‘yourDiv’)。

請記住將定義添加到您的html的標題部分。

例如

<head> 
     <script src="https://code.jquery.com/jquery-1.10.2.js"></script> 
</head>