[펌] 크롬에서 ModalWindow의 리턴값 받기
IE나 Firefox에서는 보통 쓰던대로 아래와 같이 넘기고 받으면 끝이었다.
Parent.html
var retVal = window.showModalDialog("popup.html", null,);
if (retVal) {
$("#some_id").val(retVal.some_id);
$("#some_name").val(retVal.some_name);
}
popup.html
function fn_Click(some_id, some_name) {
var obj = new Object();
obj. some_id = some_id ;
obj. some_name = some_name ;
window.returnValue = obj;
self.close();
}
그런데, Chrome에서는 popup에서 받은 retVal이라는 변수가 undefined이다.
이럴 때 아래와 같이 Chrome 브라우저에 대한 추가처리코드를 추가해 주면 해결된다.
Parent.html
var retVal = window.showModalDialog("popup.html", null,);
if (retVal == undefined)
retVal = window.returnValue;
if (retVal) {
$("#some_id").val(retVal.some_id);
$("#some_name").val(retVal.some_name);
}
popup.html
function fn_Click(some_id, some_name) {
var obj = new Object();
obj. some_id = some_id ;
obj. some_name = some_name ;
if (window.opener)
window.opener.returnValue = obj;
window.returnValue = obj;
self.close();
}
출처 : silklover님 블로그 (http://somnusnote.tistory.com/entry/Chrome%EC%97%90%EC%84%9C-ModalDialog%EB%A1%9C%EB%B6%80%ED%84%B0-returnValue%EB%A5%BC-%EB%B0%9B%EC%A7%80-%EB%AA%BB-%ED%95%98%EB%8A%94-%EB%AC%B8%EC%A0%9C%EC%9D%98-Workaround)