두 개의 창이 있습니다: A 창(상위), B 창(모달)
A 창에는 DATAGRID와 버튼이 있습니다.
버튼을 클릭하면 B창(모달)이 뜹니다. B 창에 데이터를 추가한 후 B 창을 자동으로 닫도록 한 다음 A 창(상위)을 새로 고칩니다.
하위 양식 b.html을 팝업하고 하위 양식이 새로 고쳐지도록 상위 페이지를 트리거합니다. 마감
최근 머티리얼 시스템 작업을 하다가 모달 창 문제가 또 나왔네요. 지난번 작업할 땐 그렇게 많은 일을 겪지 않았는데 적어두세요부모 창 js 메서드
function openwin(id ){
var Answer=window.showModalDialog("demand.do? method=queryBOM&mdid=" id "&d=" escape(new Date()),window.self,"dialogWidth:700px;dialogHeight:620px:center: yes");
if(answer==1){
window.location.href = "demand.do?method=selmd&d=" escape(new Date()); //처리 페이지로 이동
//window.location.reload(); 상위 창 새로 고침
//winow.location.reload(true)
}
}
캐시를 읽지 않으려면 이스케이프(new Date())를 추가하세요. 물론 하위 창에
하위 창 js 메서드:
function reVal(){
window.returnValue=1; 상위 창
window.close();
}
모달 창을 연 후 양식 제출인 경우 상위 창은 하위 창이 값을 반환할 때까지 기다립니다. 또는 버튼을 누르면 reVal() 메서드
를 실행하여 응답 값인 window.returnValue=1을 반환하는데 이곳을 테스트해 보니 배열 형식만 반환할 수 있는 것 같습니다.
하위 창에서 window.opener.location.reload()를 사용하면 잘 작동하지 않습니다. 모달 창을 사용하지 마세요. window.opern()은 잘 작동합니다
있습니다. 또 다른 문제: 모달 창에서 양식을 제출하면 새 창이 나타납니다. 이 문제는 에
를 추가하면 해결될 수 있습니다. 처음에는 양식을 통해 제출하고 싶지 않았습니다. 처리를 위해 js window.location.href를 사용했는데
가 작동하지 않는 것 같았습니다.
는 iframe을 사용하여 구현해야 하는 action="" 형식에서만 작동합니다.