DTD 선언시 SIDEVIEW 에러 해결 > 그누4 팁자료실

그누4 팁자료실

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

DTD 선언시 SIDEVIEW 에러 해결 정보

DTD 선언시 SIDEVIEW 에러 해결

첨부파일

sideview.js (11.4K) 272회 다운로드 2009-01-14 14:02:33

본문

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

아빠불당님이 쓰신 자게 글에서 () 보니까 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를 선언안해주시면 값을 무시해버립니다
추천
10

댓글 17개

함수가 중복됐다고, 옥에 티인가, 버그란인가.. 2년전에 올린 이야기인데 아직까지, 그대로.
신경 전혀 안쓰시나 보네,,,
우오!!!
감사합니다.
여태껏 사이드뷰가 나오질 않아서, 그냥 포기하고 있었는데, 이걸 보고 해결을 했습니다.

정말 고맙습니다.....눈물?ㅎㅎㅎ ㅋ
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">

해결하신 분들 도와주세요.
전체 3,313 |RSS
그누4 팁자료실 내용 검색

회원로그인

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