zoukankan      html  css  js  c++  java
  • 面试题

    针对这个问题我只能说说自己的理解了,肯定会有遗漏,毕竟我前端也不怎么会,有其他方法的朋友可以指出来,这样我也好再学习一下。

    1 如果页面A和页面B是同域的情况

    如果是同域那么两者之间可以直接通过客户端存储来交换数据的,客户端存储的方式可以看我前面一篇文章。在同域的假设条件下,如果页面A和B还是嵌套关系的话,那么可以直接使用脚本读取对方的数据,更快捷了。

    2 如果页面A和页面B不同域的情况

    页面A通过点击链接跳转到页面B的话,那么数据可以通过search和hash附加在B页面的URL上,传递给页面B。再如果页面A跳转到页面B的时候target=_self,也就是说它们在同一个浏览器窗口先后运行的,那么window对象它们是共享的,因此我们可以通过window.xx来传递数据,比如window.name=123;

    3 如果页面A和B,不同域,也没有跳转关系

    如果浏览器支持HTML5的话,我们可以使用window.postMessage来跨域发送数据。

    参考链接:

    http://davidwalsh.name/window-postmessage

    http://blog.teamtreehouse.com/cross-domain-messaging-with-postmessage

    剩下的,除非使用第三方的插件,比如flash,activex或者通过借助中转服务器,那么两者之间的数据是无法正常交互的。

    上面都是我的理解。欢迎讨论。

  • 相关阅读:
    Could not update ICEauthority file /var/lib/gdm/.ICEauthority
    反爬虫中技术点的定义
    反爬虫一些问题
    反爬虫准备
    题解「BZOJ4621 Tc605」
    题解「ZJOI2019 语言」
    题解「清华集训2012 序列操作」
    题解「CF1174F Ehab and the Big Finale」
    题解「CF516D Drazil and Morning Exercise」
    题解「HNOI2018 寻宝游戏」
  • 原文地址:https://www.cnblogs.com/huangjacky/p/4021250.html
Copyright © 2011-2022 走看看