0

当我在 iframe 中的页面上请求存储访问权限时,它返回“未定义”。

这意味着什么?我希望得到一个真实的,并且会理解错误。(被拒绝)但是在这种情况下未定义是什么意思?什么地方出了错?

<button id="start-button">Start Puctto</button>

<script>

function gain_access() {
  document.cookie = "foo=bar";              // set a cookie
  document.hasStorageAccess().then(hasAccess => {
    if (!hasAccess) {     
      return document.requestStorageAccess();
    }
  }).then(_ => {   
    // Now we have first-party storage access!
    // Let's access some items from the first-party cookie jar
    document.cookie = "foo=bar";              // set a cookie
    localStorage.setItem("username", "John"); // access a localStorage entry
    window.opener.postMessage('set_session', '*');   
    window.location.href = document.referrer;
  }).catch(_ => {
    alert(_);
  });
}
  document.getElementById('start-button').addEventListener('click', function (){
    console.log('Start button clicked');                
    gain_access();

  })
</script>
4

1 回答 1

1

我不相信出了什么问题。您是否检查过该值是否设置正确?

localStorage.setItem即使它工作也不会返回任何东西,所以当它打印到控制台时,它显示undefined即它正在尝试打印返回值但没有返回值,所以返回值为undefined.

不要依赖它的返回值来做其他事情,只是想当然。

如果它正确设置了值,localStorage那么一切都很好。

编辑:另外,显然请求存储访问的概念仍然只是在提案阶段,所以也许只是一起删除那部分。

于 2020-05-11T17:36:44.707 回答