링크를 걸때 4가지 동작을 합니다.
새창띄우기, 상위프레임에 넣기, 현재 프레임에 넣기, 아이프레임에 넣기입니다.
넣는 위치는 x.js에 넣는게 제일 편하더군요. 그래서 x.js 파일 제일 하단에 넣어서 사용중입니다.
1. 새창 띄우기 : <a onclick="xlink('new','http://주소');" style="cursor:pointer;"> 내용 </a>
2. 상위프레임에 넣기: <a onclick="xlink('parent','http://주소');" style="cursor:pointer;") 내용 </a>
현재 아이프레임상에 있거나 하위 프레임에 있을때 링크를 상위 프레임으로 걸어줍니다.
3. 현재 프레임에 넣기: <a onclick="xlink('','http://주소');" style="cursor:pointer;"> 내용 </a>
현재 위치한 프레임에 링크를 걸어줍니다.
4. 아이프레임에 넣기: <a onclick="xlink('content','http://주소');" style="cursor:pointer;"> 내용 </a>
<div id=content name=content>
<iframe id=iframe></iframe>
</div>
일 경우는 아이프레임에 바로 링크를 걸어줍니다.
<div id=content name=content>
</div>
일 경우는 <div>여기에 아이프레임을 만든 후 링크를 걸어줍니다.</div>
아무것도 없을경우...이경우는 확인을 안해봐서 잘 모르겠지만...아마 현재창에 링크를 걸어줄 것이라 생각합니다. 사용자가 링크 위치를 지정하고 사용하므로 이렇게 쓸 일이 있는지는 잘 모르겠네요.
아래는 필요한 함수입니다.
-----------아래---------------
function xlink(E,URL)
{
switch(E)
{
case 'new':
window.open( URL,'new','left=100, top=100, width=640, height=480, resizable, directories, location, menubar, scrollbars, toolbar, status');
break;
case 'parent':
parent.document.location.href = URL;
break;
case 'content':
var div_parent=xGetElementById(E);
if(!xGetElementById('iframe'))
{
var div_child=document.createElement("iframe");
div_child.id = "iframe";
div_child.name = "iframe";
div_child.style.width = div_parent.offsetWidth;
div_child.style.height = xClientHeight();
div_child.style.display = 'block';
div_parent.innerHTML = "";
div_child.frameBorder='0';
div_child.attachEvent("onload",xIFrameSize);
div_parent.appendChild(div_child);
}
else
{
var div_child = xGetElementById('iframe');
div_child.style.width = div_parent.offsetWidth;
}
div_child.src = URL;
break;
default:
document.location.href = URL;
break;
}
}
function xIFrameSize () {
try
{
var iframeElement = xGetElementById('iframe');
if(iframeElement==null) return;
if (iframeElement.contentDocument && iframeElement.contentDocument.body.offsetHeight) //ns6 syntax
{
iframeElement.style.height = iframeElement.contentDocument.body.offsetHeight+50+'px';
}
else if (iframeElement.Document && iframeElement.Document.body.scrollHeight) //ie5+ syntax
{
iframeElement.style.height = iframeElement.Document.body.scrollHeight+50+'px';
}else
{
iframeElement.style.height = 1000+'px';
}
}catch(e) {}
}
-----------끝---------------
출처 : http://hestia.tistory.com/39
'컴퓨터 > 네트워크,인터넷' 카테고리의 다른 글
IPv4와 IPv6의 주소체계 차이점과 문제점 (0) | 2009.04.24 |
---|---|
[자바스크립트] window 객체 (0) | 2009.02.12 |
[DB] MySQL 명령어 모음 (0) | 2009.02.06 |
[DB] MySQL 명령어 (0) | 2009.02.06 |
[robots.txt]이용 검색로봇 차단 가이드!! (0) | 2009.02.04 |