## 背景
不同域名之间共享 localStorage 数据的需求。受同源策略限制,不能直接访问。
## 方案:postMessage + iframe
A 域页面嵌入 B 域 iframe,通过 postMessage 通信:
```javascript
// A 域
const iframe = document.getElementById('b-iframe');
iframe.contentWindow.postMessage({type: 'GET', key: 'token'}, 'https://b.com');
window.addEventListener('message', (event) => {
if (event.origin !== 'https://b.com') return;
console.log('Received:', event.data);
});
```
```javascript
// B 域 iframe
window.addEventListener('message', async (event) => {
if (event.origin !== 'https://a.com') return;
const value = localStorage.getItem(event.data.key);
event.source.postMessage({value}, event.origin);
});
```