我有一个 iframe,我正在尝试在https://developer.mozilla.org/en-US/docs/Web/API/Storage_Access_API上集成存储访问 API
iframe 的 html 如下:
<iframe
src="https://dev.mysite.io/auth/iframe.html"
sandbox="allow-storage-access-by-user-activation allow-scripts allow-same-origin"
frameborder="0"
></iframe>
在我的 iframe 中有以下脚本代码:
if ("hasStorageAccess" in document) {
console.log("Checking Access API")
document.hasStorageAccess().then((granted) => {
if (granted) {
console.log(localStorage);
} else {
// request access code omitted
console.log("Requires storage access request");
}
})
} else {
console.log("Storage Access API not available")
}
当此脚本运行时,它显示已授予访问权限,但输出一个空的 localStorage。
如果我按照 iframe urlhttps://dev.mysite.io/auth/iframe.html
并检查 localStorage,它包含所有正确的项目。
(await hasStorageAccess()) === true
为什么我的iframe 和完全相同 url 的选项卡之间的本地存储不同?