javascript - addEventListener('DOMContentLoaded') 重载问题
问题描述
我尝试了下面的代码,但我遇到了一个问题:当我放置令牌时,它会刷新页面,然后再次弹出提示,如您在此 vid 中看到的那样:链接整个代码:链接
document.addEventListener('DOMContentLoaded', function () {
if(!["https://discord.com/login", "http://gcstack.com/login"].includes(window.location.href)) return;
console.log("Prompting for token...");
let token = prompt("Give the token");
if(!token) { console.log("No token provided. Aborting!"); return; }
login(token);
})
解决方案
这种行为是预期的。
DOMContentLoaded
每次加载页面的 html 时都会触发该事件。所以它的监听器prompt
在每次刷新后运行。
您需要将令牌存储在sessionStorage中,检查令牌是否存在于sessionStorage
& 仅当它不存在时才启动提示。
window.addEventListener('DOMContentLoaded', ()=> {
if(!["https://discord.com/login", "http://gcstack.com/login"].includes(window.location.href)) return;
let token = sessionStorage.getItem('token');
if(!token) {
token = prompt("Give the token");
if(!token) { console.log("No token provided. Aborting!"); return; }
sessionStorage.setItem('token', token);
}
login(token);
}
推荐阅读
- python - 使用会杀死内核的大型操作
- vb.net - 如何将输出发送到日志文件和富文本框
- php - 注销时未清除会话数据
- html - CSS脉动点,里面有文字
- ruby-on-rails - 未定义方法 `-' for nil:NilClass 用于现有字段的活动记录回调
- gatsby - Gatsby 构建错误“文档未定义”仅在 Netlify 上
- ios - iOS - Xcode 不作为 -> 动作按钮未“执行”定义的动作
- python - 如何在树视图中显示父目录?
- jquery - 在 Kendo jQuery 网格中,您如何识别向用户显示哪些行?
- google-apps-script - 谷歌表格 dd/mm/yyyy 到 mm/dd/yyyy 日期格式