Notice
Recent Posts
Recent Comments
Link
투케이2K
220. (TWOK/WORK) [개발 요청] 웹 관리자 대시보드에서 자동으로 화면 확대 및 축소 비율 설정 개발 요청 - document.body.style.zoom 본문
투케이2K 업무정리
220. (TWOK/WORK) [개발 요청] 웹 관리자 대시보드에서 자동으로 화면 확대 및 축소 비율 설정 개발 요청 - document.body.style.zoom
투케이2K 2026. 6. 3. 10:11728x90
반응형
[제 목]
주제 : 투케이2K 업무 정리
타이틀 : 투케이 / 2k / 업무 정리
제목 : [개발 요청] 웹 관리자 대시보드에서 자동으로 화면 확대 및 축소 비율 설정 개발 요청 - document.body.style.zoom

[내 용]
------------------------------------------------------------------------------
[개발 및 테스트 환경]
------------------------------------------------------------------------------
- 제 목 : [개발 요청] 웹 관리자 대시보드에서 자동으로 화면 확대 및 축소 비율 설정 개발 요청 - document.body.style.zoom
- 테스트 환경 : Chrome / JavaScript
- 사전) 👉 navigator.userAgent 간략 설명 :
>> navigator.userAgent 는 👉 브라우저와 OS 정보를 담은 문자열입니다.
>> navigator.userAgent 는 브라우저가 서버나 JS에게 "나는 이런 환경이야" 라고 알려주는 값입니다.
>> navigator.userAgent 호출 시 표시 되는 예시 값
- Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36
>> 주의점 :
- navigator.userAgent 는 사용자나 브라우저가 쉽게 변경 가능하며, 100% 신뢰는 불가능합니다.
- 사전) 👉 document.body.style.zoom 사용 주의점 간략 설명 :
>> document.body.style.zoom 은 비표준 CSS 속성이지만 2024~2026 기준으로는 대부분 최신 브라우저에서 동작합니다.
>> document.body.style.zoom 사용 및 지원 범위 :
- Chrome 및 Edge : 지원
- Safari : 일부 버그 존재
- Samsung Internet : 지원
------------------------------------------------------------------------------
------------------------------------------------------------------------------
[이슈 사항]
------------------------------------------------------------------------------
1. 🟥 웹 관리자 대시보드 접속 시 기존 100 퍼센트 화면 비율에서 자동으로 비율을 확대해 120 퍼센트로 브라우저를 사용할 수 있게 해달라는 개발 요청 접수
2. 🟥 기능 구현 요청 내용 정리 :
>> AS-IS : 웹 관리자 대시 보드 접속 시 100 퍼센트 화면 비율로 표시하는 것을 / TO-BE : 120 퍼센트로 브라우저를 확대 표시할 수 있도록 개발 요청
>> 제약 사항 : 크롬 브라우저 및 엣지 브라우저 기준으로 기능 개발을 수행
------------------------------------------------------------------------------
------------------------------------------------------------------------------
[원인 파악 및 증상 재현]
------------------------------------------------------------------------------
1. 🟥 웹 관리자 대시보드 접속 시 기존 100 퍼센트 화면 비율로 브라우저가 표시 되는 것 확인
2. 🟥 브라우저 확대 및 축소 설정 한 이후에 브라우저 재접속 시 해당 설정 값으로 비율이 표시 되는 것 확인
------------------------------------------------------------------------------
------------------------------------------------------------------------------
[조치 내용]
------------------------------------------------------------------------------
1. 🟦 자바스크립트에서 window.onload 시 document.body.style.zoom 값을 사용해 자동으로 화면 비율 변경 수행 실시
>> 👉 document.body.style.zoom 은 크롬 및 엣지 브라우저에서 사용할 수 있습니다.
2. 🟦 자바스크립트 소스 코드 예시 :
try {
// -----------------------------------------------
// 접속한 브라우저 체크 수행 : Chrome , Edge(Edg) 이면서 Opera(OPR), SamsungBrowser 는 제외 처리
// -----------------------------------------------
// ✔️ Edge (Chromium) , Opera (Chromium) , Samsung Browser (Chromium 기반) 브라우저들은 크로미움 엔진 기반으로 User-Agent에 "chrome" 문자열이 포함됩니다.
// -----------------------------------------------
// ✔️ Safari / Firefox는 기본적으로 User-Agent 문자열에 "chrome"을 포함하지 않기 때문에, 일치하지 않는 브라우저는 자동으로 제외됩니다.
// -----------------------------------------------
const userAgent = navigator.userAgent.toLowerCase();
//const isChrome = userAgent.includes("chrome") && !userAgent.includes("edg") && !userAgent.includes("opr") && !userAgent.includes("samsungbrowser"); // 크롬만 허용
const isChrome = (userAgent.includes("chrome") || userAgent.includes("edg")) && !userAgent.includes("opr") && !userAgent.includes("samsungbrowser"); // 크롬, 엣지 허용
// -----------------------------------------------
// 접속한 브라우저 체크 수행 : 화면 사이즈 및 모바일 및 개발자 모드 진입 여부 확인
// -----------------------------------------------
const browserWidth = window.screen.availWidth;
const isMobileOrDevTool = userAgent.search("android") >= 0 || userAgent.search("iphone") >= 0;
// -----------------------------------------------
// 접속한 브라우저 체크 수행 : 화면 접속한 비율 사이즈 확인 수행
// -----------------------------------------------
const browserZoom = window.devicePixelRatio; // PC = 1 / 태블릿 = 2 / 모바일 = 3
// -----------------------------------------------
// 로그 출력 수행
// -----------------------------------------------
console.log("■ userAgent : ", userAgent);
console.log("■ isChrome : ", isChrome);
console.log("■ browserWidth : ", browserWidth);
console.log("■ isMobileOrDevTool : ", isMobileOrDevTool);
console.log("■ browserZoom : ", browserZoom);
// -----------------------------------------------
// 접속한 브라우저 체크 수행 : ✅ document.body.style.zoom 화면 확대 및 축소 비율 변경
// -----------------------------------------------
const style = document.body.style;
if (isMobileOrDevTool == false){ // PC 환경
if (isChrome == true && browserZoom >= 1){ // 크롬 브라우저 확인
console.log('[PC] display check : ' + 'browserWidth = ' + browserWidth + " / " + 'browserZoom = ' + browserZoom + " / " + 'isMobileOrDevTool = ' + isMobileOrDevTool);
const sizeCal = browserZoom - 1; // 일반 100 퍼센트 기준
if ("zoom" in style) {
console.log('[PC] zoom style check success');
if (sizeCal == 0){ // 100 퍼센트 비율
document.body.style.zoom = "0.75"; // ✅ 화면 비율 축소
}
else if (sizeCal <= 0.3){
document.body.style.zoom = "0.6"; // ✅ 화면 비율 축소
}
else {
document.body.style.zoom = "0.5"; // ✅ 화면 비율 축소
}
}
}
else {
console.log('[PC] display check : ' + 'browserWidth = ' + browserWidth + " / " + 'browserZoom = ' + browserZoom + " / " + 'isMobileOrDevTool = ' + isMobileOrDevTool);
}
}
else { // 모바일 or 개발 툴
if (isChrome == true && browserZoom >= 2){ // 크롬 브라우저 확인
console.log('[Tool] display check : ' + 'browserWidth = ' + browserWidth + " / " + 'browserZoom = ' + browserZoom + " / " + 'isMobileOrDevTool = ' + isMobileOrDevTool);
if ("zoom" in style) {
console.log('[Tool] zoom style check success');
document.body.style.zoom = "0.85"; // ✅ 화면 비율 축소
}
}
else {
console.log('[Tool] display check : ' + 'browserWidth = ' + browserWidth + " / " + 'browserZoom = ' + browserZoom + " / " + 'isMobileOrDevTool = ' + isMobileOrDevTool);
}
}
// -----------------------------------------------
// ✅ 로그 출력 예시
// -----------------------------------------------
/*
[window onload] : [html 최초 로드 및 이벤트 상시 대기 실시] : [start]
■ userAgent : mozilla/5.0 (linux; android 6.0; nexus 5 build/mra58n) applewebkit/537.36 (khtml, like gecko) chrome/148.0.0.0 mobile safari/537.36
■ isChrome : true
■ browserWidth : 1301
■ isMobileOrDevTool : true
■ browserZoom : 2
[Tool] display check : browserWidth = 1301 / browserZoom = 2 / isMobileOrDevTool = true
[Tool] zoom style check success
// */
// -----------------------------------------------
}
catch (exception) {
console.error("[window onload] : [Exception] : ❌ 예외 상황 발생 : ", exception);
}
------------------------------------------------------------------------------
------------------------------------------------------------------------------
[참고 사이트]
------------------------------------------------------------------------------
▶️ [간단 소스] 자바스크립트 devicePixelRatio 및 body.style.zoom 브라우저 화면 확대 및 축소 비율 값 확인 및 변경 수행
https://kkh0977.tistory.com/8879
https://blog.naver.com/kkh0977/224304198315
▶️ [간단 소스] 자바스크립트 navigator.userAgent 사용해 접속한 브라우저 크롬 chrome 인지 확인 수행 - isChrome
https://kkh0977.tistory.com/8735
https://blog.naver.com/kkh0977/224238606185
▶️ [navigator (네비게이터) 사용해 브라우저 정보 확인 실시 - userAgent , cookieEnabled]
https://kkh0977.tistory.com/853
https://blog.naver.com/kkh0977/222393616945?trackingCode=blog_bloghome_searchlist
▶️ [navigator platform 사용해 pc 및 모바일 접속 확인, navigator userAgent 사용해 접속한 모바일 종류 확인]
https://kkh0977.tistory.com/873
https://blog.naver.com/kkh0977/222399340657?trackingCode=blog_bloghome_searchlist
▶️ [간단 소스] 자바스크립트 Web 웹 크롬 브라우저 키이벤트 및 마우스 우클릭 이벤트 감지 개발자 도구 진입 막기 코드
https://kkh0977.tistory.com/8669
https://blog.naver.com/kkh0977/224202975940
------------------------------------------------------------------------------
728x90
반응형
'투케이2K 업무정리' 카테고리의 다른 글
Comments
