Yasin

Yasin

localStorage 能获取别的网页的值吗

localStorage 能获取别的网页的值吗

取决于是否同源。


同源可以

同源(协议 + 域名 + 端口相同)的页面共享同一个 localStorage

页面 A:https://example.com/page-a
页面 B:https://example.com/page-b

→ 同源,共享 localStorage
// 页面 A
localStorage.setItem("name", "Alice");

// 页面 B(同源)
localStorage.getItem("name"); // 'Alice' ✅ 能获取到

不同源不行

页面 A:https://example.com
页面 B:https://other.com

→ 不同源,localStorage 完全隔离
// 页面 A(example.com)
localStorage.setItem("name", "Alice");

// 页面 B(other.com)
localStorage.getItem("name"); // null ❌ 拿不到

哪些情况算不同源

https://example.com    vs  http://example.com     → 协议不同 ❌
https://example.com    vs  https://api.example.com → 域名不同 ❌
https://example.com    vs  https://example.com:8080 → 端口不同 ❌

其他存储也是同样规则

存储方式 同源共享 跨域隔离
localStorage
sessionStorage ❌(同源但不同标签页也不共享)
Cookie 可配置 domain 共享子域名

sessionStorage 更严格

标签页 A:https://example.com/page-a
标签页 B:https://example.com/page-b

localStorage    → 共享 ✅
sessionStorage  → 不共享 ❌(每个标签页独立)