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.