parent접근성 질문입니다.

국내에 웹 사이트들이 웹 표준을 지키고 OS나 브라우저와 관계 없이 접근성을 향상 시키기 위한 사이트 버그 신고 및 문제 해결을 위한 게시판입니다.
댓글 게시
msk2417

parent접근성 질문입니다.

게시물 작성자 msk2417 » 2011 01 12 14:35 14

iframe에서 parent 의 iframe을 컨트럴 하기 위해

parent.아이프레임이름 과 같은 형식으로 접근을 하였습니다.

사파리,크롬, ie 같은경우 정상적으로 접근이 가능하지만

파포에서만 접근이 되지않아서 에러가 나는데요

이부분은 어떻게 처리해야 하는건가요?

msk2417@nate.com 으로 메일 주셔도 감사합니다.

유저 아바타
hyeonseok
해커
해커
게시물: 691
참여됨: 2004 08 11 22:14 59
연락:

Re: parent접근성 질문입니다.

게시물 작성자 hyeonseok » 2011 01 12 18:01 36

일반적으로는 문제가 없어야 하는데요. 문제가 발생하는 코드의 URL을 알려주시면 분석이 더 쉬울 것 같습니다.

Seeker
서포터즈
서포터즈
게시물: 80
참여됨: 2008 06 13 16:16 14
연락:

Re: parent접근성 질문입니다.

게시물 작성자 Seeker » 2011 01 12 18:32 33

아마 javascript 로 iframe 의 name 을 (재)지정 한거 같습니다.

parent 의 element node 로서의 iframe 과 frames 의 frame(window) 로서의 iframe 을 처리하는 방식에 있어서 브라우저마다 약간씩 다릅니다.


보통

<iframe id="ifr_id" name="ifr_name"></iframe>

에서

window.ifr_name
window.frames.ifr_name
document.getElementById("ifr_id").contentWindow

의 방법으로 iframe의 window를 참조하는데

FF에서는 태그에 직접 명시된 name 으로 초기 frames 구성이 되고 그 후에는 javascript 로 iframe element의 name 을 조작해도 조작된 name 으로는 접근이 안됩니다.

element 의 속성인 name 을 조작해도 frames 구성에는 영향을 못미친다고 해야 하나요.


굳이 하려면 element가 아니라 window의 name을 조작하면 되긴 됩니다.

document.getElementById("ifr_id").name (x)
window.ifr_name.name (o)


결론 : name 은 태그에 직접 지정하거나, iframe_element.contentWindow 로 접근하라

msk2417

Re: parent접근성 질문입니다.

게시물 작성자 msk2417 » 2011 01 13 13:16 16

hyeonseok 씀:일반적으로는 문제가 없어야 하는데요. 문제가 발생하는 코드의 URL을 알려주시면 분석이 더 쉬울 것 같습니다.
url은 현재 ip이기때문에 노출이 좀 꺼려지네요....

간단하게 소스를 적겠습니다

index.html
<body>
<iframe name="leftframe" src="leftmenu.html"></iframe>
<iframe name="rightframe" src="rightmenu.html"></iframe>
</body>

leftmenu.html
<div onclick="test()">test</div>
<script type="text/javascript">
function test(){
parent.rightframe.location.href="main.html"
}
</script>

이런 식으로 leftmenu.html에서 값을 받아서 rightfram 을
이동시키려하는것입니다.

유저 아바타
hyeonseok
해커
해커
게시물: 691
참여됨: 2004 08 11 22:14 59
연락:

Re: parent접근성 질문입니다.

게시물 작성자 hyeonseok » 2011 01 13 20:08 56

코드: 모두 선택

<button onclick="test()">test</button>
<script type="text/javascript">
function test(){
    parent.document.getElementsByName('rightframe').item(0).src = "leftmenu.html"
}
</script>
이렇게 하시면 됩니다.

박민권
해커
해커
게시물: 724
참여됨: 2005 01 31 22:33 55
위치: 대한민국
연락:

Re: parent접근성 질문입니다.

게시물 작성자 박민권 » 2011 01 15 18:05 10

아래와 같이 접근하셔도 됩니다.

코드: 모두 선택

parent.frames['rightframe'].src = "leftmenu.html"
참고자료
https://developer.mozilla.org/en/DOM/window.frames

프로그래밍적으로 엄밀히 따지자면 window, parent, opener 등은 window 객체이고 iframe은 element라 window객체에서와 같이 .location 같은 프로퍼티가 동작하지 않는 것이 맞습니다.

댓글 게시

누군가 접속

유저들이 이 포럼을 탐색중: 가입된 유저 없음 그리고 4 손님들