jquery를 사용하지 않고 문서 높이와 너비를 얻는 방법


답변:


119
var height = document.body.clientHeight;
var width = document.body.clientWidth;

더 나은 설명을 위해이 기사 를 확인하십시오 .


9
이것은 크로스 브라우저가 아닙니다. 게시하기 전에이를 테스트해야합니다.

12
@Iwazaru 지적 해 주셔서 감사합니다. 이 4 년 된 답변이 방탄이 아닌 것 같습니다. :)
Damb

2

웹 사이트에 테두리가있는 경우이 솔루션을 사용하면 너비가 제거되지만 jQuery 솔루션은 그렇지 않습니다. 신체의 경계가 될 것 같지는 않지만 알 가치가 있습니다. window.innerWidth이 해결
BritishSam

콘텐츠 / 웹 페이지의 높이가 아니라 브라우저 창의 높이 (브라우저의 높이를 조정하면 변경됨)가 반환됩니다.
Radmation 2019

56

http://www.howtocreate.co.uk/tutorials/javascript/browserwindow에 제공된 마지막 예제조차도 Quirks 모드에서 작동하지 않습니다. 내가 생각했던 것보다 쉽게 ​​찾을 수 있는데, 이것이 해결책 인 것 같습니다 (최신 jquery 코드에서 발췌).

Math.max(
    document.documentElement["clientWidth"],
    document.body["scrollWidth"],
    document.documentElement["scrollWidth"],
    document.body["offsetWidth"],
    document.documentElement["offsetWidth"]
);

높이를 얻으려면 너비를 "높이"로 바꾸십시오.


1
정답이되어야합니다. clientWidth에 항상 올바른 값이있는 것은 아닙니다.
Wildhammer

clientWidth의 문제는 볼 수만 있다는 것입니다. scrollWidth는 화면에서 새는 것을 포함합니다. 적어도 이것은 2019
StayCool

@StayCool 최신 jQuery가 문서 높이 / 너비 계산에이 방법을 여전히 사용하고있는 것으로 보이며 $(document).width(). 아마도 당신은 $(window).width()순수한 JS document.documentElement["clientWidth"]에서 현대 브라우저에 있는 것과 같은 것을 추구 할 것 입니다.
Dan

38

이것은 브라우저 간 솔루션입니다.

var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
var h = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;

이 할 수있는 안전하고 정확한 일
앤 저우

1
이것은 문서 높이와 너비가 아닌 창 높이와 너비를 반환합니다
Michael

25

getBoundingClientRect일반적으로 크로스 브라우저에서 작동 하고 경계 사각형에서 하위 픽셀 정밀도 를 제공 하므로 사용해야합니다 .

elem.getBoundingClientRect()


document.body에서 사용했을 때 높이 0을 반환합니다.
Michael

아마도 몸의 높이가 0이기 때문일 것입니다. 디스플레이 유형을 변경하지 않으면 기본적으로 그렇습니다. DOM 검사기에서 확인하십시오.
Erik Aigner

11

jQuery없이 문서 크기 가져 오기

document.documentElement.clientWidth
document.documentElement.clientHeight

그리고 화면 크기가 필요한 경우 이것을 사용하십시오.

screen.width
screen.height

8

시도해 볼 수도 있습니다.

document.body.offsetHeight
document.body.offsetWidth

1
창 크기 조정 이벤트와 같은 경우에 사용하는 데주의하십시오. 높이와 너비를 계산해야하는데 시간이 걸립니다.
Miles

8

이것은 모든 브라우저 / 장치에서 작동합니다.

function getActualWidth()
{
    var actualWidth = window.innerWidth ||
                      document.documentElement.clientWidth ||
                      document.body.clientWidth ||
                      document.body.offsetWidth;

    return actualWidth;
}

window.innerWidth는 개발 도구가 크롬에 열려있는 경우에도 올바른 단 하나
알렉스


1

문서 너비와 높이를 매우 쉽게 찾는 방법은 무엇입니까?

HTML
<span id="hidden_placer" style="position:absolute;right:0;bottom:0;visibility:hidden;"></span>

자바 스크립트

     var c=document.querySelector('#hidden_placer');

     var r=c.getBoundingClientRect();
     r.right=document width
     r.bottom=document height`

필요한 경우 모든 창 크기 조정 이벤트에서이를 업데이트 할 수 있습니다.


0

window전체 브라우저의 응용 프로그램 창입니다. document실제로로드 된 웹 페이지입니다.

window.innerWidth그리고 window.innerHeight당신이 원하는하지 않을 수 있습니다 계정에 스크롤바를 취할 것입니다.

document.documentElement상단 스크롤바가없는 전체 웹 페이지입니다. document.documentElement.clientWidthy 스크롤바없이 문서 너비 크기를 반환합니다. document.documentElement.clientHeightx 스크롤바없이 문서 높이 크기를 반환합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.