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);
    这样就完成了从不同域的父页面向子页面传值的过程
  • 相关阅读:
    项目计划进度控制与资源管理
    读大道至简所思
    Java自学第三十二天
    Java自学第三十一天
    Java自学第三十天
    Java自学第二十九天
    Java自学第二十八天
    Java自学第二十七天
    Java自学第二十六天
    Java自学第二十五天
  • 原文地址:https://www.cnblogs.com/mmzuo-798/p/13444554.html
Copyright © 2011-2022 走看看