• Iframe跨域传值


    1.1. 新建一个web项目修改index.jsp

      https://www.cnblogs.com/ysgcs/p/9148999.html  新建一个web

    添加form表单

    <form>
            输入用户名:<input type="text" name="userName" value="" id="name"/><br>
          密码:<input type="password" name="passWord" value="" id="password"><br>
              <input type="submit"  value="提交" name="submit" id="login">
      </form>

    添加iframe嵌套子页面

    <iframe src="子页面路径"
          width="500px" height="500px"  name="iframeId" style="display:none;"
          visibility="hidden" id="iframeId">
    </iframe>

    编写js,传参数给子页面

    <script type="text/javascript" src="js/jquery.min.js" ></script>

     

     

    <script>
        $('#login').click(function(){
            getData()
        })
        function getData(){
            var name = $('#name').val();
            var pass = $('#password').val();
            var obj = {
                name:name,
                pass:pass
            }
            var win = $('#iframeId')[0].contentWindow;
            win.postMessage(JSON.stringify(obj),'*');
        }

    </script>

    window.postMessage(message,targetOrigin) 方法是html5新引进的特性,可以使用它来向其它的window对象发送消息

    message:为要发送的消息;
    targetOrigin:用来限定接收消息的那个window对象所在的域,如果不想限定域,可以使用通配符 “*”。

    2. 页面

    2.1. 修改子.jsp

    接收index.jsp中传递的参数,调用子页面登录函数

    window.onmessage = function (e) {
        portalLoginaa(e.data)
    }

    window.onmessage = function(e){ }

    参数e为message实例

    子登录函数

    function portalLoginaa(objStr) {
        var password = JSON.parse(objStr).pass
        var loginName = JSON.parse(objStr).name      

    password=strEnc(password,$("#random").val(),"","");      

    loginName=strEnc(loginName,$("#random").val(),"","");
        $("#password").val(password);
        $("#loginName").val(loginName);
        document.forms['Login'].IDToken1.value = LoginForm.loginName.value;
        document.forms['Login'].IDToken2.value = LoginForm.password.value;
        $("#loginName").val("");
        document.forms['Login'].submit();
    }

  • 相关阅读:
    txt文件按行处理工具类(可以截取小说、分析日志等)【我】
    java正则表达式取出匹配字符串
    svn客户端更改用户名
    Spring集成MyBatis完整示例
    redis的list取出数据方式速度测试
    处理大量数据的性能优化一例【我】
    unity3d结合轮廓显示,实现完整的框选目标(附Demo代码)
    Unity3dPro 和免费版的区别
    unity3d 射线扫描 忽略图层
    Unity3D角色攻击范围判定和攻击判定
  • 原文地址:https://www.cnblogs.com/xp0813/p/11759727.html
Copyright © 2020-2023  润新知