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或者通过借助中转服务器,那么两者之间的数据是无法正常交互的。

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

  • 相关阅读:
    融云会话界面导航上移-使用IQKeyboardManager
    App调用safar
    info.plist 安全登录
    could not find developer disk image
    easyExcel使用以及踩过的坑
    springBoot配置文件详解
    jvm面试题(纯手撸)
    面试题
    设计模式之观察者模式(Observer)
    设计模式之模板方法(TemplateMethod)
  • 原文地址:https://www.cnblogs.com/huangjacky/p/4021250.html
Copyright © 2011-2022 走看看