obj.offsetParent 오류날때 [출처] obj.offsetParent 오류날때 (진수의 웹프로그래밍) |작성자 웹투존
http://cafe.naver.com/8266.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=340&
<input name="startday" type="text" value="" onclick="Calendar(document.all.startday, document.all.endday);" readonly="readOnly" />
짠~~ 시작 ,,, --;; 뭐지 "X 개체가 필요합니다. ooo.js, 줄 453 문자2"
간만에 켈린더를 붙이는데 계속 오류가 나더만, 한참 여기저기 디져서 나온건 DOCTYPE 부분에 DTD 부분 삭제해보란다.
<!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" lang="ko" xml:lang="ko">
<head>
...
이미 DocType를 선언하고 작업을 한경우 참 난감하다.
해서 여러 소스를 끄적거린 가운데 방법을 찾았다.
--------에러난 소스 시작----------------
var target1, target2;
var pop_top;
var pop_left;
function Calendar(obj, obj2) 
{
 var now = 
obj.value.split("-");
 var now2 = 
obj2.value.split("-");
 target1 = obj;
 target2 = obj2;
pop_top = document.body.clientTop + 
GetObjectTop(obj) - document.body.scrollTop;
pop_left = document.body.clientLeft + 
GetObjectLeft(obj) -  document.body.scrollLeft;
...
...
var calHeight = 220;
oPopup.show(pop_left, (pop_top + 
target1.offsetHeight), 290, calHeight, document.body);
function GetObjectTop(obj)
{
 if 
(obj.offsetParent == document.body)
  return obj.offsetTop;
 else
  return obj.offsetTop + 
GetObjectTop(obj.offsetParent);
}
function 
GetObjectLeft(obj)
{
 
 if 
(obj.offsetParent == document.body)
  return obj.offsetLeft;
 else
  return obj.offsetLeft + 
GetObjectLeft(obj.offsetParent);
}
--------에러난 소스 끝----------------
-------- 개선한 소스 시작 ---------------
var target1, target2;
var pop_top;
var pop_left;
var srcElement=null;
function Calendar(obj, obj2) 
{
 var now = 
obj.value.split("-");
 var now2 = 
obj2.value.split("-");
 target1 = obj;
 target2 = obj2;
//pop_top = 
document.body.clientTop + GetObjectTop(obj) - 
document.body.scrollTop;
//pop_left 
= document.body.clientLeft + GetObjectLeft(obj) -  
document.body.scrollLeft;
srcElement=window.event.srcElement;
...
...
var calHeight = 220;
//oPopup.show(pop_left, 
(pop_top + target1.offsetHeight), 290, calHeight, 
document.body);
oPopup.show(0, srcElement.offsetHeight, 290, calHeight, srcElement);
-------- 개선한 소스 끝 ---------------
[출처] obj.offsetParent 오류날때 (진수의 웹프로그래밍) |작성자 웹투존