JavaScript - 设置超时函数,然后获取innerHTML并设置sessionStorage

JavaScript - Set timeout function, then get innerHTML and set sessionStorage

我有一个叫 resultsSection<div>。我想设置一个超时,等待3秒,然后获取resultsSection的内容,保存到sessionStorage.

我知道这看起来很奇怪,但这是一个简化的示例。在我的网站上,resultsSection 从多个来源异步加载了内容。加载完成后(大约 3 秒后),我想复制 resultsSection 的内容并将它们保存在 sessionStorage 中以备后用,这样我就不必再次重新加载所有内容。我目前在这里做错了。我该如何实现?

<div class='resultsSection' id='resultsSection'>
    Example
</div>

<script>
    const itemName = "example";
    const name = "resultsSection";
    setTimeout(function(){ const data = document.getElementById(name).innerHTML;  }, 3000); // I think this is wrong
    sessionStorage.setItem(itemName , data );
</script>

您遇到了范围界定问题。您在函数内部设置 data 并试图在外部使用它。而是需要在函数setItem里面调用函数

const itemName = "example";
const name = "resultsSection";
setTimeout(function() {
  const data = document.getElementById(name).innerHTML;  
  sessionStorage.setItem(itemName, data);
}, 3000);

请注意,setTimeout 不会延迟其后的代码。所有依赖于超时的东西需要在超时内。