2010-12-22 2 views
0

다양한 웹 사이트의 웹 페이지를 호스팅하는 iframe이 있습니다. iframe을위한 온로드 핸들러에서 나는 JQUERY웹 페이지에 크기 조정 이벤트가있을 때 내용에 맞게 iframe의 크기를 조절

높이 = iframe.find ('몸')를 사용하여 내용에 맞게 크기를 조정합니다. ATTR를 ('scrollHeight') + 100

이것은 대부분의 웹 사이트에 대한 잘 작동합니다. 그러나 페이지를 다시로드하는 이벤트 인 window.onresize가있는 웹 사이트가 있습니다. 따라서 페이지가 다시 크기가 조정 된 페이지를 다시로드하는 무한 루프가 발생하여 페이지가 다시로드됩니다.

어떻게 크기 조절 이벤트를 죽일 수 있습니까? 내 onload 핸들러에서 다음을 시도했지만 아무 것도 작동하지 않는 것 같습니다 :

$ ('# webpage') .resize (function() {alert ("resizing"); return false});

iframe.resize (function() {alert ("resizing"); return false});

window.onresize = NULL

window.onresize = 함수() {경고 ("리사이징"); false를 반환};

+0

크기 변경시 어떤 종류의 바보 사이트가 다시로드됩니까? : S – thirtydot

+0

Heh @ thirtydot - 탭을 바꿀 때 크롬 통화 크기가 조절되는 것을 보았습니다. 페이지를 다시 랜더링하는 것을 발견했습니다. – danjah

+1

@thirtydot : Netscape 4 용으로 작성된 것으로, 창 크기를 조정할 때 CSS가 완전히 망가졌습니다. Reload-on-resize는 일반적으로 'if (document.layers)'와 같은 브라우저 스 니프에서만 수행되었지만 일반적인 해결 방법이었습니다. – bobince

답변

0

내가 모르는 이상한 해결책이없는 한 무한 루프를 막는 가장 좋은 방법은 onload 처리기를 iframe에 몇 번이나 호출했는지 계산하는 것입니다. 1이 넘으면 요? 2? 삼? 시간을 조정 한 다음 크기를 조정하지 마십시오.

+0

감사. 이걸별로 좋아하지는 않았지만, 높이를 바꾸기 전에 높이가 다른지 확인해 보라고했습니다. – simon

관련 문제