{수정} 본문페이지에서 아이프레임으로 댓글 보이기 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

{수정} 본문페이지에서 아이프레임으로 댓글 보이기 정보

{수정} 본문페이지에서 아이프레임으로 댓글 보이기

본문

<iframe style=width:100%; frameborder="0" marginheight="0" marginwidth="0" scrolling="no" id="ifrcmt" src="<?=$g4[bbs_path]?>/board.php?bo_table=<?=$bo_table?>&wr_id=1&cwin=1" name="ifrcmt"></iframe>



<iframe style=width:100%; frameborder="0" marginheight="0" marginwidth="0" scrolling="no" id="ifrcmt" src="<?=$g4[bbs_path]?>/board.php?bo_table=<?=$bo_table?>&wr_id=<?=$wr_id?>&cwin=1" name="ifrcmt"></iframe>

로 수정했습니다. "wr_id=1"을 "wr_id=<?=$wr_id?>"로... (2008.08.11)

///////////////////////////////////////////////////////////////////////////

팁이라고 하기엔 너무 허접하지만... 올립니다. 혹시 이걸 보고 좀 더 기능을 확장하실 분이 있지 않을까 해서....;;;


본문(view.skin.php)에 댓글 출력하는 소스(아래)
<?
include_once("./view_comment.php");
?>
를 주석처리하고 아래처럼 아이프레임으로 바꾸기만 했습니다.

<iframe style=width:100%; frameborder="0" marginheight="0" marginwidth="0" scrolling="no" id="ifrcmt" src="<?=$g4[bbs_path]?>/board.php?bo_table=<?=$bo_table?>&wr_id=<?=$wr_id?>&cwin=1" name="ifrcmt"></iframe>

목록(list.skin.php)에서 새창으로 댓글페이지 띄우는 링크를 그대로 아이프레임으로 불러 온 거죠. 그리고 이 아이프레임 소스는 길이에 따라 자동으로 늘어납니다. 이와 관련한 스크립트(아래)를 view.skin.php 상단 적당한 곳에 넣습니다. (물론 취향에 따라서는 아이프레임의 길이를 고정할 수도 있겠습니다)

<script type="text/javascript">
// IFrame script Ver 1.0

//여러개의 IFrame는 다음과 같이 사용합니다.
// 예 : ["myframe1", "myframe2"] or ["myframe"] or [] for none:
var iframeids=["ifrcmt"]
var iframehide="yes"

var getFFVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("Firefox")).split("/")[1]
var FFextraHeight=parseFloat(getFFVersion)>=0.1? 16 : 0

function resizeCaller() {
var dyniframe=new Array()

for (i=0; i<iframeids.length; i++) {
if (document.getElementById)
resizeIframe(iframeids[i])

if ((document.all || document.getElementById) && iframehide=="no") {
var tempobj=document.all? document.all[iframeids[i]] : document.getElementById(iframeids[i])
tempobj.style.display="block"
}
}
}

function resizeIframe(frameid) {
var currentfr=document.getElementById(frameid)

if (currentfr && !window.opera){
currentfr.style.display="block"

if (currentfr.contentDocument && currentfr.contentDocument.body.offsetHeight)
currentfr.height = currentfr.contentDocument.body.offsetHeight+FFextraHeight;
else if (currentfr.Document && currentfr.Document.body.scrollHeight)
currentfr.height = currentfr.Document.body.scrollHeight;

if (currentfr.addEventListener)
currentfr.addEventListener("load", readjustIframe, false)
else if (currentfr.attachEvent){
currentfr.detachEvent("onload", readjustIframe)
currentfr.attachEvent("onload", readjustIframe)
}
}
}

function readjustIframe(loadevt) {
var crossevt=(window.event)? event : loadevt
var iframeroot=(crossevt.currentTarget)? crossevt.currentTarget : crossevt.srcElement

if (iframeroot)
resizeIframe(iframeroot.id);
}

function loadintoIframe(iframeid, url) {
if (document.getElementById)
document.getElementById(iframeid).src=url
}

if (window.addEventListener)
window.addEventListener("load", resizeCaller, false)
else if (window.attachEvent)
window.attachEvent("onload", resizeCaller)
else
window.onload=resizeCaller
</script>

이 팁은 이것말고도 많이 있더군요. 얼마전에 이에 관한 질문도 올린 적 있습니다. (http://sir.co.kr/bbs/board.php?bo_table=pl_qa&wr_id=437) 좀 더 깔끔한 소스 아신다면 조언해주세요. 이 소스도 IE, FF 둘다에서 잘 작동하더군요.


그리고 view_comment.skin.php에서 새창으로 띄웠을 때 보이는 하단의 창닫기 버튼을 아래처럼 주석처리합니다. 이유는 설명 안해도 아시겠죠^^;

문서상단
<!---------------
<? if ($cwin==1) { ?><table width=100% cellpadding=10 align=center><tr><td><?}?>
----------------->

문서하단
<!-------------------
<? if($cwin==1) { ?></td><tr></table><p align=center><a href="javascript:window.close();"><img src="<?=$board_skin_path?>/img/btn_close.gif" border="0"></a><br><br><?}?>
--------------------->


사실 이걸 생각하게 된 동기는 따로 있습니다만 아무튼 댓글의 페이징화, 시간순, 역시간순 배열 옵션 기능 등에 유용할꺼라 보입니다.
추천
2

댓글 5개

뇽뇽뇽 멋진 기능이죠 =ㅅ=//
다만 안타까운것은 #을 이용한 코멘트로 직접 이동이 안된다는것 Orz...
이미 적용해서 쓰고 있었지만; 아작스로 변환하면 될것 같아서 캐노가다 해보는 중입니다만 -ㅅ-;;
감도 안잡혀요;
리사이즈가 파이어폭스에서도 작동이 되나요?

익스플로러에서만 된다고 예전에 들은 적이 있어서... 나라오름 님의 클럽이 아이프레임으로 되어있어서.. ^^;
전체 28 |RSS
그누4 팁자료실 내용 검색

회원로그인

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