如何从其他 HTML 文件中创建 HTML 文件调用代码,即保持所有内容模块化?

问题描述 投票:0回答:2

我正在尝试将我的个人笔记转换为 HTML 并保持它们的模块化。我正在尝试让这个测试代码正常工作。

我有一个名为 main-file.html 的文件。

我还有另一个文件,名为 sub-file.html。该文件中的唯一代码是“Hello World”。

我想双击 main-file.html,这样当它在我的网络浏览器中打开时,我会看到一个带有“Hello World”字样的页面,因为 main-file.html 正在读取代码sub-file.html 并渲染它,就好像该代码位于 main-file.html 本身中一样。最终,我想引用许多子文件。

实现这个结果的最简单的代码是什么?使用 JavaScript 是可以接受的。我不想使用第三方软件、PHP、SSI、Web 服务器等,因为我希望它可以在任何开箱即用的计算机上运行,只需要一个 Web 浏览器。我也不想使用 iFrame 或对象,因为我已经尝试了好几天让它适用于我的应用程序,但如果没有大量尴尬的滚动条等,我无法让它正确渲染(除非你知道一种在没有滚动条的情况下逐个渲染每个子文件的方法,我无法弄清楚)。我只想让 main-file.html 读取 sub-file.html 中的代码,并将其视为 sub-file.html 的代码位于 main-file.html 中。

我已经与 Google Bard 和 ChatGPT 合作了几天,试图让它发挥作用,但没有成功。非常感谢任何帮助。

我尝试了这段代码,但没有成功。

<!DOCTYPE html>
<html>
<head>
    <title>Main File</title>
</head>
<body>
    <div id="content"></div>
    <script>
        // Use JavaScript to load and display content from sub-file.html
        fetch('sub-file.html')
            .then(response => response.text())
            .then(data => {
                document.getElementById('content').innerHTML = data;
            })
            .catch(error => {
                console.error('Error loading sub-file.html:', error);
            });
    </script>
</body>
</html>
javascript html modularity
2个回答
0
投票

您不需要任何 JavaScript 来完成这个简单的任务,可以使用

iframe
加载您的子页面

<!DOCTYPE html>
<html>
<head>
    <title>Main File</title>
</head>
<body>
    <iframe id="content" src="sub-file.html" width="100%" height="300">
</body>
</html>

唯一的限制是你必须设置一个特定的高度,如果子页面的内容较长它会出现在滚动条中。


0
投票

您的代码仅在将其执行到网络服务器中时才有效。如果你像文件一样在网络浏览器中执行它,它会给你一个异常。

我个人将 HTML 笔记放在单个文件中。

© www.soinside.com 2019 - 2024. All rights reserved.