글쓰기 모달 iframe 부모창 새로고침
본문
글쓰기하면 모달창을 iframe 으로 띄우고 글쓰면
리스트 화면(부모창)을 새로고침 되려고하는데
write_update.skin.php에
아래 처럼 리로드 해도 새로고침이 안되네요 alert 도 안뜨고요
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
?>
<script>
alert('test');
parent.document.location.reload();
</script>
답변 2
parent.location.reload(); 로 해보세요.
그런데 이럴 경우 주의사항이 있습니다.
본인창이 아이프레임으로 불리워지면 부모창이 있을 경우 부모창이 parent 가 되지만
부모창이 없다면 본인 자신이 동시에 parent 가 되어서 본인 자신을 새로고침하게 됩니다.
거의 광분 새로고침이 된다는 얘기죠.
그래서 이프문을 하나 넣어주어야 하죠. 본인과 parent 의 location.href 가 다르다면 아리는 조건입니다.
여기서 location 을 비교하지 않고 location.href 를 비교하는 것은
전자는 object 이고 후자는 string 이기 때문에 그렇습니다.
예컨대 html5 부터는 엘리먼트 네이밍이 가능해서 <location> 이라는 꺾쇠를 생성하면
바로 <span> 과 똑같은 기능을 가지면서 동시에 type 를 찍어보면 object 를 토해내므로 경로 로케이션과 꺾쇠 로케이션의 비교를 피하기 위해서 location.href 문자열을 비교하는 것이죠.
하지만 파폭에서는 location.href 도 object 로 인식합니다.
따라서 안전을 기하기 위하여. 문자열로 치환해야 해요.
<script>
if (String(location.href) != String(parent.location.href)) {
alert('test');
parent.location.reload();
}
</script>
<script type="text/javascript">
opener.location.reload(true);
self.close(); // 새창닫기
$(".모달창클래스네임 또는 ID명").remove(); // 모달창 없애기
</script>
이렇게 해보세요...
부모창 새로고침하고 새창은 자동으로 닫게할 것입니다.
$(".모달창클래스네임 또는 ID명").remove();