我有2个子域名:
由于我使用localstorage来存储我在www.example.com上需要的internal.example.com上的一些信息,我实现了以下解决方案:
我在www上加载了位于内部的iframe。我将文档域值设置为“父域”
document.domain = "example.com";
现在在www上,我可以通过执行以下操作访问www上的localStorage:
frames['internalFrameName'].window.localStorage;
现在我可以读写值了。这适用于Chrome和Internetexplorer,它在Firefox中工作,直到FF30的最后一次更新。现在我收到了错误:
SecurityError: The operation is insecure.
任何想法如何解决?
答案 0 :(得分:1)
您可以使用消息传递系统在两个帧之间进行通信。然后iframe就可以发送本地存储数据。
这可能会对您有所帮助:How to communicate between iframe and the parent site?
您需要使用框架[' internalFrameName']。postMessage(message,targetOrigin,[transfer]);
答案 1 :(得分:1)
Gecko会在禁用Cookie时抛出错误消息,除了localStorage
的对象检测之外(我确定您已经在您未发布的代码中执行此操作)首先检查是否支持cookies。
变化:
if (window.localStorage)
要:
if (document.cookie && window.localStorage)