iframe 관련 문의 입니다. ^^

국내에 웹 사이트들이 웹 표준을 지키고 OS나 브라우저와 관계 없이 접근성을 향상 시키기 위한 사이트 버그 신고 및 문제 해결을 위한 게시판입니다.
Post Reply
taesachi
Posts: 8
Joined: 2005 01 13 17:13 34
Contact:

iframe 관련 문의 입니다. ^^

Post by taesachi »

수고들 많으십니다. ^^
다름이 아니라 지금 회사에서 HTML의 표준화 작업을 하고 있는데요...

iframe은 다음과 같습니다.
<iframe name="mailBody" id = "mailBody" src="aaa.php" frameborder="no" scrolling="no" style = "width:100%; height:100%;"></iframe>

iframe 내부 소스는 다음과 같습니다.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
<link rel="stylesheet" type="text/css" href="css/webmail.css">
<SCRIPT LANGUAGE="JavaScript">
<!--
function resizeFrame(name)
{
var oBody = document.body;
var oFrame = parent.window.frames[name];
var min_height = oFrame.scrollHeight;
var min_width = oBody.scrollWidth;

var i_height = oBody.scrollHeight + (oBody.offsetHeight-oBody.clientHeight);
var i_width = oBody.scrollWidth + (oBody.offsetWidth-oBody.clientWidth);
if(i_height < min_height) i_height = min_height;
if(i_width < min_width) i_width = min_width;
parent.document.getElementById(name).style.height = i_height+"px";
parent.document.getElementById(name).style.width = i_width;
parent.scrollTo(1,1);
}

//-->
</SCRIPT>
</head>
<body leftmargin = '0' topmargin = '0' onload = "javascript:resizeFrame('mailBody');parent.document.getElementById('load_body').style.display = 'none';">
aaa
</body>
</html>


잘못된 부분이 없는것 같은데... View Frame Info를 보면 URL이 about:blank 이걸로 나옵니다. 쩝... ㅡ.ㅡ

뭐가 잘못된건지 알려주시면 정말 감사하겠습니다.

P.S 코딩을 해달라는게 아닙니다. ^^
어디가 어떻게 잘못됐으니 고치시오... 라고 해주시면 됍니다. ^^
파란사오정

re: 뭐가 잘못된건지 알려주시면

Post by 파란사오정 »

iframe 소스에서

onload = "javascript:resizeFrame(....."

"javascript:"는 필요없는 부분입니다.
아래처럼...

onload = "resizeFrame(....."
taesachi
Posts: 8
Joined: 2005 01 13 17:13 34
Contact:

흐흐흐... 원인 찾았습니다. [자답]

Post by taesachi »

대부분 iframe에서 style 부분 때문에 id 속성을 지정하고 frame 컨트롤 때문에 name 속성을 지정합니다.
그런데 이 id 부분의 값과 name 부분의 값이 동일하면 안되더군요...
이부분도 표준에 속하는건지는 모르겠지만...
아무튼 id 부분의 값과 name부분의 값을 다르게 하면 정상적으로 동작 합니다.

저와같은 문제를 겪고 계신분들에게 도움이 됐으면 좋겠습니다. ^^

to. 파란사오정님
답변 주신것 정말 감사합니다. ^^
파란사오정

re: id 부분의 값과 name 부분의 값이

Post by 파란사오정 »

저는 오히려 단일 엘레멘트 내의 id 속성과 name 속성은 같아야 하는 것으로
알고 있는데요...


html 4.01 번역문서 by trio
http://trio.co.kr/webrefer/html/struct/ ... l#h-12.2.3
12.2.3 id 애트리뷰트를 갖는 앤커(anchor)

......

id와 name 애트리뷰트는 같은 이름 자리를 사용한다. 이는 한 문서에서 앤커를 같은 이름으로 지정할 수 없다는 뜻이다. 이 두 애트리뷰트는 다음 엘레멘트들에는 같은 유일한 인식자(identifier)를 지정하기 위하여 사용 할 수 있다: A, APPLET, FORM, FRAME, IFRAME, IMG, MAP. 두 애트리뷰트가 단일 엘레멘트에 사용되려면 그 값들이 같아야 한다.


혹시 mailBody란 id 또는 name이 문서내의 다른 태그에 중복 사용된 것은
아닌가요 ???
taesachi
Posts: 8
Joined: 2005 01 13 17:13 34
Contact:

문서내에 같은 name 은 없죠... ^^

Post by taesachi »

만약 그렇다면 정상 실행이 되지않고 Script 에러가 발생 했겠죠...
그리고 반드시 id 와 name 의 이름이 같아야 하는건 아니라고 알고 있습니다.
속성값을 같게 하는이유는 단일 엘레멘트로 사용하게 하려고 하기 때문에 하는걸로 알고 있습니다.
하지만 제 코드에 보시면 아시겠지만... Frame의 사이즈를 자동으로 조정하기 위해 window.frames 를 사용했기 때문에 이부분에서만 name 속성을 사용하고 나머지 엘레멘트 ID를 가져오는 부분에서는 id 속성을 사용합니다.

이는 <input type="text" name="test" id="test1" value=""> 를 컨트롤 하기 위해서
document.formname.test.value = "a";
document.getElementById('test1').style.width = "300";
으로 사용하는것과 같습니다.

Anchor에서 단일 엘레멘트로 사용할때에는 님의 말씀이 맞습니다만... 단일 엘레멘트의 사용이 아닐경우에는 제가 말씀드린것 처럼 name 속성과 id 속성이 같으면 안된다고 할 수 있겠습니다.

참고로 저도 왜 그런지는 모르겠습니다. ^^
저도 님처럼 name 속성값과 id속성값이 같아야 하는걸로 알고 있었으니까요... ^^
Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests