jQuery Height () Internet Explorer의 문제 6
-
03-07-2019 - |
문제
jQuery 1.3.2를 사용하고 있습니다.
인터넷 익스플로러에서 올바른 "높이"를 얻는 데 어려움이 있습니다. 6. 다른 모든 브라우저에서 높이 값이 정확합니다.
나도 사용하고 있습니다 WRESIZE jQuery 플러그인.
브라우저가로드 될 때마다 브라우저 치수를 기반으로 DIV, Iframes를 크기로 만드는 메소드를 발사합니다. (이것에 대한 좋은 이유가 있습니다.)
반환 된 $ ( 'body'). height ()의 값은 브라우저의 각 크기 조정 후 10 픽셀을 추가하는 것으로 보입니다.
다른 사람이 이와 같은 것을 발견합니까?
var iframeH = 0, h = 0, groupH = 0, adjust = 0;
var tableH = $("#" + gridId + "_DXHeaderTable").parent().height();
var pagerH = $(".dxgvPagerBottomPanel").height();
var groupHeight = $(".dxgvGroupPanel").height();
if (pagerH == null)
pagerH = 0;
if (groupHeight != null)
groupH = groupHeight + pagerH;
iframeH = $('body').height();
h = (iframeH - (tableH + pagerH + groupH));
$('#' + gridId + "Panel").css("height", (h + "px"));
$("#" + gridId + "_DXMainTable").parent().css("height", (h + "px"));
이 코드는 부모 컨테이너에서 DeVexpress 그리드의 높이를 설정하기위한 것입니다. 코드가 더 나을 수 있다는 사실을 무시하십시오. :)
올바른 크기를 얻는 데 사용할 수있는 "Body"외에 다른 것이 있습니까? Window Object ($ (Window) .height ())를 시도했지만 많은 도움이되지 않는 것 같습니다.
어떤 생각도 감사합니다!
해결책
당신이 직면하고있는 문제는 CSS 렌더링 차이 일 가능성이 높습니다. 부동 문제, 패딩 및 마진 렌더링 차이로 인해 브라우저 간의 차이가 있습니다.
얻으 려하다 $ ( "body"). InnerHeight () 그리고 $ ( "body"). outerheight () 다른 브라우저에서 비교하면 일반적인 결과가 나옵니다. 최악의 경우 일부를 실행해야 할 수도 있습니다 if
케이스
다른 팁
물론 여기에 몇 가지 아이디어가 있습니다.
IE와 ESP. 구형, 즉, 나는 높이 렌더링 함수 주위에 1-10ms settimeout 문을 추가하고 싶습니다. DOM과 즉, "휴식"을 제공합니다.
또한 페이지에서 물건이 보이는지 확인하십시오.이를 위해 절대 위치를 사용하여 일시적으로 화면에서 물건을 버려야 할 수 있습니다. 그런 다음 다시 화면에 공개해야합니다.
또 다른 것은 높이 ()가 때때로 원한다는 것입니다. .CSS ( '높이')를 시도하여 높이를 검색하고 [또한 더 빠릅니다]하고 'PX'를 제거하십시오. 때때로 진정한 측정.
$('body').height(); // call this first
iframeH = $('body').height(); //then try this