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)
'내가 자꾸 까먹어서 쓰는 개발 이야기 > JavaScript' 카테고리의 다른 글
업로드 전 파일 용량 체크하기 (0) | 2013.02.28 |
---|---|
모바일 접속 체크하는 스크립트 (0) | 2013.02.12 |
스크립트에서 number_format (0) | 2009.10.20 |
브라우저 안쪽의 사이즈 (0) | 2008.06.10 |
iframe 사이즈 자동 조정 (0) | 2007.11.27 |
최근댓글