iframe의 제목을 title로 써야 합니다.

iframe의 제목을 title로 써야 합니다.

QA

iframe의 제목을 title로 써야 합니다.

본문

https://K.com/A.php 파일에서 아이프레임(iframe)으로

https://K.com/B/B.php나 https://K.com/C/C.php를 불러 오고 있습니다. 

그리고 버튼을 누르면 iframe 안의 B.php와 C.php가 서로 바뀌게 되어 있습니다.

 

그때마다 브라우저 탭에 B.php와 C.php의 제목을 표현해야 합니다. 

링크를 눌러서 iframe 내부 페이지가 C.php로 바뀌면,

부모 페이지인 A.php의 $g5['title']에 C.php의 제목이 와야 하는 것입니다. 

그 제목은 부모 페이지가 있는 브라우저의 탭에 표시될 것입니다. 

 

if "프레임 내부에 불려진 파일이 XXX.php" 라면 $g5['title']="XXX.php 파일의 제목"

이래야 할 것 같은데...

이런 경우에 코드를 어떻게 써야 할까요?

PHP가 아니라 자바스크립트로 해야할 것 같기도 한데, 그렇다면 어떻게 작성해야 할까요?

이 질문에 댓글 쓰기 :

답변 2

title 도 하나의 엘레먼트 입니다. 그래서 아이디를 줄 수 있지요.

 

<title id="myTitle">그누보드 만만세</title>

<script>

myTitle.innerText = "hello world";

</script>

 

위와 같이 하면 타이틀이 hello world 로 바뀝니다.

 

------

 

a.php 를 아래처럼 작성하고

 

<title id="myTitle">그누보드 만만세</title>

<iframe src="b.php"></iframe>

 

-----

 

b.php 를 아래처럼 작성해 보세요.

 

<title id="yourTitle">비타주리 만만세</title>
<script>
if (typeof parent.myTitle === "object") parent.myTitle.innerText = yourTitle.innerText;
</script>

 

-----

 

그럼 아이프레임의 타이틀이 부모페이지의 타이틀을 바꾸게 합니다.

 

여기에서 if 문이 필요한 이유는 b.php 가 단독으로 쓰이거나 다른 문서의 아이프레임으로 사용되면

b.php 의 parent 페이지에 myTitle 이라는 엘레먼트가 존재하지 않습니다.

존재하지 않는 놈을 부르면 오류가 뜨게 되므로 부모페이지에 myTitle 라는 애의 타입이 오브젝트로 존재한다면 이라는 조건문을 반드시 써 줘야 오류가 생기지 않습니다.

 

-----

 

querySelector("title") 등으로 접근하면 이 경우는 별로 안 좋습니다.

그 이유는 만일 x.php 에서 b.php 를 부를 경우 x.php의 타이틀 변경이 필요가 없음에도 상위문서의 타이틀이 변경되기 때문에 이 경우는 아이디로 접근하는 것이 정신건강에 이롭습니다.^^ 

오오... 재미있습니다.
어쩌면 그리 설명이 쏙쏙 눈에 잘 들어오게 설명하시는지...
특히 "비타주리 만만세" 이 부분 정말 압권입니다!
덕분에 완벽히 이해하게 되었습니다. 감사합니다!!

window.top.document.title = "새로운 타이틀 제목";
이렇게 해서 해 보세요...

답변을 작성하시기 전에 로그인 해주세요.
전체 35
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT