localstorage也存在 跨域的问题,
【解决思路如下】
在A域和B域下引入C域,所有的读写都由C域来完成,本地数据存在C域下
因此 A哉和B域的页面必定要引入C域的页面; 当然C域最好是主域,原因后面会提到(在localstorage 不方便的情况下使用cookie);
【A域】【B域】需要读写时,通过postMessage 向【C域】发送跨哉消息,
【C域】监听跨域消息,在接到批定的消息时进行读写操作,
【C域】接到跨域消息时,如果是写入删除可以不做什么,如果是读取,就要先读取本域本地数据通过postMessage向父页面发送消息,
【A 域 / B 域】在读取【C域】数据时就需要监听来自【C域】的跨域消息
【注意事项】
window.postMessage()方法,向【C域】发消息,应用iframe.contentWindow.postMessage() 这样iframe内的【C 域】才可以接到,
同理,【C域】向 【A 域B域】发消息时应用,window.parent.postMessage()
【A域、B域】的逻辑一定要在iframe 加载完成后进行
【C域】的页面如下:
根据域名请自行修改
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="robots" content="noindex">
<title>cross domain</t