我想做的是,当有人导航到我的网站时,它会询问他们的名字,或者只是有一个通用名称,然后说“不是你,请单击此处”。之后, Angular 落里会显示“欢迎回来,[名字]”。但是,这是一个 GitHub Pages 网站,因此我不确定这是否可行,并且只需省略名称即可。
简单地硬编码一个名称或根本没有名称确实有效,但如果没有某种数据库或存储和检索凭据的能力,我不知道如何实现这一点。
我目前在网页上的所有内容是
<p style="text-align:right; color:gray"><i>Welcome back.</i></p>.
我在 Google 上找不到与我的问题类似的内容,除了那些不太能说明问题的关键字之外,我不确定如何措辞。
我不相信网站可以在没有某种 cookie 的情况下写入用户的系统,但我不太了解如何使用它们存储数据。我猜我需要利用 HTML5 window.LocalStorage
但我不知道如何实现它。
本质上,有没有办法将某人的名字存储在 cookie、网站缓存或服务器端以外的其他位置,据我所知 GitHub Pages 是只读的。
最佳答案
正如评论中所指出的,本地存储(或 cookie)是在没有自己的服务器或某些外部服务的情况下完成您想要的操作的唯一方法。
这绝不是一个永久的存储解决方案,您无法控制用户如何管理其本地存储,但这里有一个最小的示例,您可以将其放入 HTML 文件中并在浏览器中打开进行测试。
<input id="local-input" onkeydown="store(this)">
<script>
// keep the contents of the input in local storage, called by input onkeydown
function store(e) {
localStorage.setItem('local', e.value)
}
// if previous storage exists, use it
if(localStorage.getItem('local') !== null) {
document.getElementById('local-input').value = localStorage.getItem('local')
}
</script>
本地存储非常易于使用。请参阅在线文档以获取更多示例和指导:MDN Window.localStorage
关于javascript - GitHub Pages 网站中有没有办法在 session 之间存储文本框的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60714660/