我想在一個div中調用另一個html頁面。從另一個調用另一個html文件
我嘗試使用
<include file="NavigationTree.html" />
和
<? include("/starfix/pages/NavigationTree.html"); ?>
但它不工作。 我做錯了什麼或者我需要以其他方式做嗎?
我想在一個div中調用另一個html頁面。從另一個調用另一個html文件
我嘗試使用
<include file="NavigationTree.html" />
和
<? include("/starfix/pages/NavigationTree.html"); ?>
但它不工作。 我做錯了什麼或者我需要以其他方式做嗎?
您可以使用iframe
爲,例如:
<iframe width="500" height="300" frameborder="no" scrolling="no" marginheight="0" marginwidth="0"
src="http://www.example.com/page.html"></iframe>
這很方便,但有缺點:它不會與外部文檔共享DOM,最重要的是,它不能自動調整大小以適應iframed頁面的內容。 – 2010-05-11 10:00:34
你可能要考慮使用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如果它在具有'.html'擴展名的頁面中工作,則這比PHP方法更勝一籌。即使不這樣做,最好將'html'文件添加到SSI文件類型列表中,而不是添加到PHP解析的文件類型列表中。 – 2010-05-11 10:12:23
這在純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。
不放*路徑*不會*查看當前目錄。它會迫使PHP通過include_path尋找包含。通常情況下'.'就在其中,但如果情況並非如此,那麼將不會找到include,否則將使用錯誤的include。最好總是放一個明確的路徑,比如'./ NavigationTree.html'。 – 2010-05-11 10:09:35
@Ignacio你是對的。我會添加該信息。 – 2010-05-11 10:10:36
你也可以使用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>
...「呼叫」?如何,祈禱告訴,你是否這樣做? – 2010-05-11 09:58:30