平时问题总结

一个修改密码的需求(具体:一套修改密码的代码逻辑步在另外一套服务器上php写的而且是https:172.16.2.6, 要嵌入在oa系统里http:172.16.20.36)php

// 在页面写入一个div开始隐藏,在点击忘记密码的时候给这个div里面建立一个iframe,让其显示

function newforgotPassword(){
    $('#myDiv').show().width('100%').css('background','rgba(0,0,0,0.2)');
    var iframe = document.createElement('iframe'); 
    iframe.scrolling = 'no';
    iframe.setAttribute('id','iframe');
    iframe.setAttribute('name','iframename');
    iframe.style.border = 'none';
    iframe.src = "https://172.16.2.6/resetpwd/";  
    // iframe.style.height = '100%';
    // iframe.style.width = '100%';
    $('#myDiv').append(iframe);
    $('.mask').show();
}


踩坑开始:css

如图所示整个弹框都是内嵌的页面,出现的问题是:iframe内嵌的页面点击关闭之后,父页面不知道,
而后建立的iframe依然存在 就会挡住后面的登录输入框 没办法再次点击只能从新刷新页面

为了解决这个问题 想到的方案:1 在子页面点击关闭的时候发出来一个事件,而后父页面接收事件
① $(父页面元素选择器, window.parent.document);
    ② window.parent.$(父页面元素选择器)window.parent.父页面方法;
同事说  试试domain  试过也不行 (这两个域名必须属于同一个基础域名!并且所用的协议,端口都要一致才能够使用domain)
2 父页面为A.com  iframe弹框为B.com 再建立一个html 里面只写关闭弹框的方法 再经过iframe的方式嵌入到iframe(B.com)的弹框中
 可是他属于A.com  这样关闭方法和父页面就是同域 就能够关闭弹框以后 隐藏iframe以及div  问题解决?  然鹅 并无 

 以上两种方法 都不行  都会报错  报跨域的错 可能https http 的错也有


 最终解决办法 再父页面写了一个关闭按钮 搁到了iframe关闭按钮那里  这样就能够解决问题了     变通!!!
相关文章
相关标签/搜索