javascript - 在事件中包含本地 html 文件(无服务器,无 ajax)
问题描述
main
问题归结为:当有人按下按钮时,如何显示全新的?
所以一个javascript代码看起来像这样:
let post1 = document.getElementById('post1')
post1.onclick=function (){
//bring in local file?
//document.main.innerHTML=localHtmlFile
}
和 HTML
<body>
<button id="post1">Post 1</button>
<main> </main>
</body>
我知道类似的事情是用 Ajax 完成的。但这不是对服务器的请求,而只是对同一台计算机中的文件的请求。
任何想法?
编辑
我只想为像我这样的新手提供一些信息:
注意:出于安全原因,您不能从本地文件系统 fetch() 文件(或在本地运行其他此类操作);要在本地运行上述示例,您必须通过本地网络服务器运行该示例。MDN
这可能也适用于 XMLHttpRequests。
(所以看起来很愚蠢,我们无法获取自己的文件。)
解决方案
我已将 id 添加到主标记,并在 localHtmlFile 字段中存储了一个 html 字符串。
试试看
window.localStorage.setItem('page', "<div>new content</div>");
let post1 = document.getElementById('post1')
post1.onclick=function (){
//can I include something similar to this?
document.getElementById('main').innerHTML=window.localStorage.readItem('page');
}
<body>
<button id="post1">Post 1</button>
<main id="main">
</main>
</body>
推荐阅读
- r - 如何在另一个特定单词前面提取一个单词?
- amazon-web-services - 使用 AWS 使用大量第三方 API 数据的最佳策略?
- linux - 'script' 命令在 TTY 中由 systemd 启动时不打印任何内容
- angular - angular 6 - 用键盘输入关闭模式
- python - 对齐匹配元素列表
- c - 多个条件未正确评估
- amazon-web-services - 如何从 lambda 函数更新代理状态
- javascript - 如何获取 v-for 的索引值作为 Vue 中计算属性函数的参数?
- c# - C# how to write a multidimensional array
- c# - Entity Framework Core 是否适合高负载的 Web 应用程序?