최근에 resize 에 관련해서 몇몇 오류들을 격다보니...
resize() 에 관한 통일안이 있어야하나...라는 생각이 문득 들었다.
(아직 testing 중...)

...

frame.onload=... 가
프레임 내부에서 call 하느냐, 아니면 프레임 외부에서 call 하느냐...랄까...

뭐... 원초적(?)인 문제는 그 부분이 아닌 것 같지만...

...

외부에서 불러오지 않으면(?) 내부에서 부른다...라는 컨셉으로 script 를 작성해본다.

일단 iframe 내부...


<html><head></head>
<body onload=callResize(); onresize=releaseResize(); >
<script>
var resizeCaller='';

function resizing() {  with(document.body) window.resize(scrollWidth, scrollHeight);  resizeCaller='';  }

function callResize() {  resizeCaller=setTimeout(resizing, 100);  }

function releaseResize() {  if (resizeCaller) clearTimeout(resizeCaller);  }

</script>
</body>


위의 방법이 잘 됐으면 좋겠지만... 어딘지 자꾸 오류가 생기는 것 같아서...

*추가* '10.03.06 00:20

iframe 관련해서 연동도 시킬겸... 몇번 연구끝에... 이정도 선에서 일단 결론을 내렸다.


<script>
var resizeCaller='', resizingObject='';

function resizing() {  if (!resizingObject) with(window.document.body) window.resizeTo(scrollWidth, scrollHeight); else with(resizingObject.document.body) { resizingObject.width=scrollWidth; resizingObject.height=scrollHeight; }  resizeCaller='';  resizingObject=''; }

function callResize() { if (arguments.length) resizingObject=arguments[0]; else resizingObject=''; resizeCaller=setTimeout(resizing, 100); }

function releaseResize() {  if (resizeCaller) { clearTimeout(resizeCaller); resizeCaller=resizingObject=''; } }
</script>

...
<td onresize=callResize(); ... >...</td>
...
<iframe onresize=releaseResize(); onload=callResize(this); ...></iframe>
...


내 생각이 맞다면, 일반에서도 적용이 될 듯...

DoubleVictory killofki@.


Posted by killofki
,