zoukankan      html  css  js  c++  java
  • iframe 跨域 父页面向子页面传值

    今天碰到一个需求,是不同域的两个页面之间传值

    在网上找了一下,一般有两个解决方案,一个是建立一个代理页面,通过代理页面传值,

    另一个方法是通过H5的postMessage方法传值,今天用的是第二种。

    首先,在父页面A中建立一个iframe,其中src要写好子页面B的地址,然后在A页面中写如下方法:

            var iframe = document.getElementById("onemap");
            var msg = {loginName:'arcgis',loginPassword:'Esri1234'};
            var childDomain = "https://geoplat.training.com";
            
            iframe.contentWindow.postMessage(msg,childDomain);

    记住,childDomain与A的iframe的src地址不一样,childDomain是域,而src是域中的一个页面

    msg是传输的信息,可以是字符串,也可以是对象。

    上面的方法一定要写在一个函数中,并通过点击事件调用,如果希望iframe开始为空,点击后在设置src,

    可以在设置src之后,通过setTimeout设置一定时间后在传输信息。

    在子页面B中,通过对window添加事件获取传输过来的信息:

                window.addEventListener("message",function(obj){
                   
                    var name = obj.data.loginName;
                    var password = obj.data.loginPassword;
                    login.iframeChildLogin(name,password);
                },false);
    这样就完成了从不同域的父页面向子页面传值的过程
  • 相关阅读:
    for of 与 for in的区别
    Mac Item2 SSH免密登录Linux 服务器的两种方式
    组塞式,非阻塞式,同步异步
    Thrift_简介(基于C#)
    HTTP Error 500.22
    http协议
    IIS_部署出错
    JavaScript如何实现继承
    $(function(){})与 (function(){})() (function($){})() 的区别
    C#_反射机制
  • 原文地址:https://www.cnblogs.com/mmzuo-798/p/13444554.html
Copyright © 2011-2022 走看看