如何在客户端网站上打开第三方localStorage商店?

时间:2015-07-07 13:32:27

标签: javascript html5 local-storage

我正在编写第三方原生JavaScript组件,该组件在客户端上使用localStorage。

查看Chrome DevTools上的“资源”选项卡时,我看到我的localStorage条目存储在客户端域下。例如:让我们说我的文件来自cdn.3rd.com并在stackoverflow.com上用作资源,而我的localStorage条目保存在http://stackoverflow.com商店下。

但是,查看不同的网站,我发现通常第三方localStorage条目会保存到第三方域名下的商店。例如在bbc.com中,我看到了iperceptions.com的商店,而在cnn.com,有一个outbrain.com的商店。

那么如何在客户端页面上为我自己的域打开localStorage商店?

1 个答案:

答案 0 :(得分:2)

由于以下限制,您无法访问其他第三方网站的localStorage。

HTML5不允许对localStorage进行跨域访问

基本上,<TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="{Binding JobData.JobName}" VerticalAlignment="Top" Width="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBoxItem}}, Path=ActualWidth}"> 是特定于源的资源,因此禁止从其他站点访问localStorage。在HTML5草案的早期阶段,有一个localStorage完全允许跨域访问,但由于安全问题,它已被删除。因此,WebAPI目前非常重视安全性。

已知的解决方法 - 仅在您拥有目标网站的管理权限时才有效

有一个非常nice article which demonstrates how to cross-origin access localStorage with iframe。但是,此方法要求您修改目标站点的客户端脚本,以通过邮件发布将iframe中的localStorage内容中继到您的站点。因此,如果没有对目标站点的完全管理访问权限,则无法执行此操作。