DTD 선언시 SIDEVIEW 에러 해결

이 팁은 그누보드 4.31.03 버전에서 수정된 팁입니다

아빠불당님이 쓰신 자게 글에서 (http://sir.co.kr/bbs/board.php?bo_table=cm_free&wr_id=303985) 보니까 DTD선언시 sideview  보는게 에러난다고 하시더라구요
그래서 플록님 따라 해보았지만  IE에서 안되고 그래서 떠돌아다니는 팁을 이것저것 알아보다가 이렇게 저렇게 해보다가 간단히 몇몇 function 오류라고 판결되었습니다


먼저  js/sideview.js 를 열어주시면,
getAbsoluteTop 펑션과 getAbsoluteLeft 펑션이 두개씩 존재하고 있습니다
149줄 근처에 있는 두 펑션은 냅두시고 280줄 근처에 가보시면 똑같은 펑션이 있는데 지워주세요


지우셨나요?
그러면 이제 getAbsoluteTop 펑션 내용을 봅시다

원본코드


        var oCurrentNode=oNode;
        var iTop=0;
        while(oCurrentNode.tagName!="BODY") {
            iTop+=oCurrentNode.offsetTop - oCurrentNode.scrollTop;
            oCurrentNode=oCurrentNode.offsetParent;
        }
        return iTop;

이렇게 나타나있습니다, 그러나 IE에서는 tagName 부분에서 이상하게 오류가 나더군요
그래서 다음코드로 수정하시면 오류가 해결됩니다


        var oCurrentNode=oNode;
        var iTop=0;

 if(oCurrentNode.offsetParent){
   do{
    if(oCurrentNode.tagName!="body")
     iTop += oCurrentNode.offsetTop - oCurrentNode.scrollTop;
   }
   while(oCurrentNode = oCurrentNode.offsetParent);
  }
        return iTop;

코드정리는 알아서 해주세요..; 에딧플러스에서 복사하고 붙여넣었떠니 이렇네요;;


그리고 getAbsoluteLeft도 아래 코드로 바꿔주세요

var oCurrentNode=oNode;
        var iLeft=0;
        iLeft+=oCurrentNode.offsetWidth;/*
        while(oCurrentNode.tagName!="BODY") {
            iLeft+=oCurrentNode.offsetLeft;
            oCurrentNode=oCurrentNode.offsetParent;
        }*/

  if(oCurrentNode.offsetParent){
   do{
    if(oCurrentNode.tagName!="body")
     iLeft += oCurrentNode.offsetLeft;
   }
   while(oCurrentNode = oCurrentNode.offsetParent);
  }
        return iLeft;




이 소스로 dtd 선언하고 IE6, FF 로 실험해보아서 모두 정상적으로 나오며
dtd 선언을 빼고 IE6에서 실험을 해도 정상적으로 나옵니다

다음버젼때 sideview.js 의 위 소스로 대체해주셨으면 합니다



** 그리고....

sideview.js의 128, 130, 132줄 끝에 + "px"; 를 붙여주세요
DTD선언으로 FF / Opera 에선 px를 선언안해주시면 값을 무시해버립니다

첨부파일

sideview.js (11.4 KB) 272회 2009-01-14 14:02
|

댓글 17개

감사합니다. 수정하신 sideview.js를 올려주심 안될까요???
올렸습니다
그리고 올려둔 파일은 euc-kr 버젼입니다
오류없이 잘 되네요. 리자님이 다음 버젼에 교체를 해주셨슴 합니다 ^^
함수가 중복됐다고, 옥에 티인가, 버그란인가.. 2년전에 올린 이야기인데 아직까지, 그대로.
신경 전혀 안쓰시나 보네,,,
감사합니다 패치완료 ^^
감사합니다.
감사합니다~ 적용완료 11.26
감사합니다. 지금도 사이드뷰에 px 추가가 적용 되있지 않네요. ^^
감사합니다~
감사합니다~!!!
DTD 선언시 SIDEVIEW 에러 해결
DTD 좀 쓸라고 하니까 여기저기 안 되는게 많네요. 좋은 정보 고맙습니다.
정말 감사합니다 깨끗하게 해결^^
감사합니다. 잘 사용하겠습니다.^^
우오!!!
감사합니다.
여태껏 사이드뷰가 나오질 않아서, 그냥 포기하고 있었는데, 이걸 보고 해결을 했습니다.

정말 고맙습니다.....눈물?ㅎㅎㅎ ㅋ
sideview.js 다운받아서 파일을 덮어 쓰기 했는데도 불구하고 테이블 및 레이아웃이 엉망입니다.

DTD 선언 head_sub.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=8">

해결하신 분들 도와주세요.
댓글을 작성하시려면 로그인이 필요합니다. 로그인

그누4 팁자료실

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

+
제목 글쓴이 날짜 조회
17년 전 조회 2,759
17년 전 조회 2,748
17년 전 조회 2,231
17년 전 조회 4,342
17년 전 조회 2,747
17년 전 조회 4,631
17년 전 조회 6,079
17년 전 조회 6,062
17년 전 조회 1.2만
17년 전 조회 7,661
17년 전 조회 4,655
17년 전 조회 6,146
17년 전 조회 2,756
17년 전 조회 2,005
17년 전 조회 4,251
17년 전 조회 2,690
17년 전 조회 3,398
17년 전 조회 2,779
17년 전 조회 4,565
17년 전 조회 2,479
🐛 버그신고