DTD 선언시 SIDEVIEW 에러 해결 정보
DTD 선언시 SIDEVIEW 에러 해결첨부파일
본문
이 팁은 그누보드 4.31.03 버전에서 수정된 팁입니다
아빠불당님이 쓰신 자게 글에서 () 보니까 DTD선언시 sideview 보는게 에러난다고 하시더라구요
그래서 플록님 따라 해보았지만 IE에서 안되고 그래서 떠돌아다니는 팁을 이것저것 알아보다가 이렇게 저렇게 해보다가 간단히 몇몇 function 오류라고 판결되었습니다
먼저 js/sideview.js 를 열어주시면,
getAbsoluteTop 펑션과 getAbsoluteLeft 펑션이 두개씩 존재하고 있습니다
149줄 근처에 있는 두 펑션은 냅두시고 280줄 근처에 가보시면 똑같은 펑션이 있는데 지워주세요
지우셨나요?
그러면 이제 getAbsoluteTop 펑션 내용을 봅시다
이 소스로 dtd 선언하고 IE6, FF 로 실험해보아서 모두 정상적으로 나오며
dtd 선언을 빼고 IE6에서 실험을 해도 정상적으로 나옵니다
다음버젼때 sideview.js 의 위 소스로 대체해주셨으면 합니다
** 그리고....
sideview.js의 128, 130, 132줄 끝에 + "px"; 를 붙여주세요
DTD선언으로 FF / Opera 에선 px를 선언안해주시면 값을 무시해버립니다
아빠불당님이 쓰신 자게 글에서 () 보니까 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;
코드정리는 알아서 해주세요..; 에딧플러스에서 복사하고 붙여넣었떠니 이렇네요;;
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;
}*/
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
10
댓글 17개
감사합니다. 수정하신 sideview.js를 올려주심 안될까요???
올렸습니다
그리고 올려둔 파일은 euc-kr 버젼입니다
그리고 올려둔 파일은 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">
해결하신 분들 도와주세요.
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">
해결하신 분들 도와주세요.