簡體   English   中英

如何在當前 html 代碼中使用外部 html 文件

[英]How to use external html file in current html code

我正在嘗試將外部 HTML 頁面(通用導航)加載到我當前的 HTML 頁面中。 我嘗試了加載功能,但它已被棄用。 你能告訴我另一種包含它的方法嗎? 我沒有使用任何服務器。

這是我的代碼

<!DOCTYPE html>
<html>

<head>
  <script src="ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
  <script>
    $(document).ready(function() {
      $('#content').load(" nav.html ");
    });
  </script>
</head>

<body>
  <div id="content "></div>
</body>

</html>

嘗試這個

<script>
    function loadPage(href) {
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.open("GET", href, false);
        xmlhttp.send();
        return xmlhttp.responseText;
    };

    document.getElementById('content').innerHTML =
        loadPage('your_html_file.html');
</script>


<div id="content">

</div>

您應該使用SSI 功能

有幾種方法,但這可以解決您的問題。

<!--#include virtual="PathToYourFile/YourFile.html" -->

這可以插入到<div>以在 CSS 中進一步設置樣式。

記住! 由於 html-doctypes 的一些限制,您不能將.html文件插入到.html文件中。 您必須使用另一種格式作為.shtml ,您可以在其中包含.html文件。 您可以將.html包含到.shtml文件中。 這也是.shtml最初創建的目的。 這是因為它是XHTML(動態 XML HTML)的一部分...


更改文件

您對 HTML 的方法是正確的,也是您的 JS。 我在那里包含了很多包含文本的 html 文件。

我的方法是,當加載頁面時,將在<div>加載一些帶有<!--#include virtual="" -->文本。 下面 JS 用於更改<div>的內容。 正如 Daniel Beck 所說:“...至少在 Apache 中,服務器需要配置為檢查特定的文件擴展名...”。 您在 .htaccess 文件中配置您的文件。 只有在你知道自己在做什么的情況下才這樣做。

某些(較新的?)服務器具有默認設置,如果您希望能夠包含 .html 文件,則無需更改 .htaccess 文件。 至少您可以將 .html 文件包含到 .shtml 文件中。

我已經包含了一個Mimetype轉換器,它告訴瀏覽器它應該如何讀取文件。 對於 txt/html,我告訴腳本它應該使用字符編碼ISO-8859-1。 也可以使用其他的 UTF-8。 這取決於您和您的接收者的母語。

考慮使用e.preventDefault(); . 有了這個,我告訴瀏覽器不要將其視為導航鏈接,因此只會加載<div>的內容。

$(function() {
  $('#ButtonsID').click(function(e) {
    $('.DivClass').load('PathToFile/File.shtml');
    e.preventDefault();
  });

});

$.ajaxSetup({
  'beforeSend': function(xhr) {
    xhr.overrideMimeType('text/html; charset=ISO-8859-1');
  }
});

將兩個文件頁面放在同一目錄中,然后您可以使用鏈接上的簡單按鈕來使用外部文件。 例如

<button><a href="nav.html"> External file </a></button>

按鈕是您的選擇,它只是理解您可以簡單使用 html 鏈接的示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM