gpt4 book ai didi

javascript - 如何在页面刷新后延迟执行 JavaScript 函数?

转载 作者:行者123 更新时间:2023-11-28 04:21:38 24 4
gpt4 key购买 nike

作为 JavaScript 新手,我需要从 sessionStorage 检索数据并在父输入刷新后填充我的父输入表单以更新一些子记录。我能够独立调用刷新页面的函数和从 sessionStorage 获取数据的函数,但我无法组合这些过程,以便 a) 页面完全重新加载,然后 b) 从 sessionStorage 检索数据页面重新加载后。怎样才能做到这一点呢?

我的页面刷新代码(尝试使用 setTimeout 方法组合功能)如下:

<script> 
function refreshPage() {
location.reload();
setTimeout(GetSessionData, 4000);
}
</script>

我从 sessionStorage 中获取数据的函数如下:

<script>
var inputcollection = document.getElementsByTagName("input");

function GetSessionData() {
for (var i = 0; i &lt; inputcollection.length; i++) {
if(document.getElementById(inputcollection[i].name) != null || document.getElementById(inputcollection[i].name) != undefined) {
console.log(i + " " + inputcollection[i].name + "-" + inputcollection [i].value + "-");
if(document.getElementById(inputcollection[i].name).type != "file"){
document.getElementById(inputcollection[i].name).value = sessionStorage.getItem(inputcollection[i].name);
}}}
</script>

最佳答案

当您在refreshPage()函数中执行函数时,它将执行上一条指令以刷新页面location.reload(),因此它将刷新页面,由于页面重新加载,函数执行停止并且以下挂起的代码永远不会执行。

您应该在页面刷新/加载之后将 GetSessionData() 函数执行放在文档正文的加载事件上,并将其从刷新中删除。

<html>
<head>
<!--Many things -->
<script>
function refreshPage() {
location.reload();
}
</script>
</head>
<body onload="GetSessionData()">
<!-- Your body code -->
</body>
</html>

如果您想使用 setTimeOut 函数添加延迟,您应该将其放入另一个函数或 GetSessionData 内

function GetSessionData() {
setTimeOut(function(){
for (var i = 0; i < inputcollection.length; i++) {
if(document.getElementById(inputcollection[i].name) != null ||
document.getElementById(inputcollection[i].name) != undefined) {
console.log(i + " " + inputcollection[i].name + "-" +
inputcollection [i].value + "-");
if(document.getElementById(inputcollection[i].name).type != "file"){
document.getElementById(inputcollection[i].name).value = sessionStorage.getItem(inputcollection[i].name);
}
}
}
},4000);
}

关于javascript - 如何在页面刷新后延迟执行 JavaScript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45383091/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com