2008-10-05 5 views
1

전체 브라우저 뷰포트를 다루기 위해 javascript 요소의 너비와 높이를 설정하려고합니다. 적절한 IE6 HTML 요소 크기

document.body.clientHeight
을 사용하여 성공했지만 IE6에서는 항상 가로 및 세로 스크롤 막대가있는 것처럼 보입니다 요소가 너무 커야하기 때문입니다.

이제 브라우저 특정 논리를 사용하지 않고 IE6 용으로 각 차원에서 픽셀 또는 2를 빼고 싶습니다. 또한, 나는 픽셀 양을 필요로하기 때문에 이것을 위해 CSS (너비 : 100 % 등)를 사용하지 않습니다.

누구나 뷰포트를 IE6 +의 요소로 채우는 더 좋은 방법을 알고 있습니까 (분명히 좋은 브라우저일까요?).

편집 : Thanks for Owen 제안에 대해 jQuery가 작동 할 것이라고 확신합니다. 툴킷에 무관 한 솔루션이 필요하다는 것을 분명히해야했습니다.

답변

3

당신이 jQuery를 사용하여 생각이 있습니까? 대부분의 브라우저 특정 기능을 공통 인터페이스로 추상화합니다.

var width = $(document).width(); 
var height = $(document.height(); 

$('#mySpecialElement').width(width).height(height); 
+0

jQuery를 사용할 수 있으면 좋겠지 만, 그걸 제어 할 수는 없다. ( –

3

원인 ... http://andylangton.co.uk/articles/javascript/get-viewport-size-javascript/에서

도움이 될 수

<script type="text/javascript"> 
<!-- 

var viewportwidth; 
var viewportheight; 

// the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight 

if (typeof window.innerWidth != 'undefined') 
{ 
     viewportwidth = window.innerWidth, 
     viewportheight = window.innerHeight 
} 

// IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document) 

else if (typeof document.documentElement != 'undefined' 
    && typeof document.documentElement.clientWidth != 
    'undefined' && document.documentElement.clientWidth != 0) 
{ 
     viewportwidth = document.documentElement.clientWidth, 
     viewportheight = document.documentElement.clientHeight 
} 

// older versions of IE 

else 
{ 
     viewportwidth = document.getElementsByTagName('body')[0].clientWidth, 
     viewportheight = document.getElementsByTagName('body')[0].clientHeight 
} 
document.write('<p>Your viewport width is '+viewportwidth+'x'+viewportheight+'</p>'); 
//--> 
</script> 
+0

흠 ... 불행히도 이것은 내가 사용했던 것과 다른 계산을하지 않는 것 같습니다. 그래도 도움 주셔서 감사합니다 :) –

1

Ahha! 나는

document.documentElement.clientLeft
document.documentElement.clientTop
을 깜박했다.

IE는 2이고 양호한 브라우저는 0입니다.

var WIDTH = ((document.documentElement.clientWidth - document.documentElement.clientLeft) || document.body.clientWidth);
등을 사용하여 트릭을 만들었습니다. HEIGHT와 비슷한 아이디어였습니다!