글쓰기 모달 iframe 부모창 새로고침

글쓰기 모달 iframe 부모창 새로고침

QA

글쓰기 모달 iframe 부모창 새로고침

답변 2

본문

글쓰기하면 모달창을 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();

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 28
© SIRSOFT
현재 페이지 제일 처음으로