## 背景

不同域名之间共享 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);
});
```

Last modification:June 19, 2026
如果觉得我的文章对你有用,请随意赞赏