平時問題總結

一個修改密碼的需求(具體:一套修改密碼的代碼邏輯步在另外一套服務器上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關閉按鈕那裏  這樣就能夠解決問題了     變通!!!
相關文章
相關標籤/搜索