본문 바로가기
#IT 개발노트

JavaScript(자바스크립트) 브라우저 객체 1탄

by 꾸미라기 2024. 2. 2.
반응형
SMALL

자바스크립트에서 브라우저 객체는 웹 브라우저 환경에서 제공되는 객체들을 가리킵니다. 이 객체들은 웹 페이지의 구조, 동작, 사용자와의 상호 작용을 다루는 데 사용됩니다. 주요한 브라우저 객체에는 다음과 같은 것들이 있습니다:

1. 브라우저 객체의 종류


(1) Window 객체
자바스크립트 코드가 실행되는 전역 객체입니다.
브라우저 창을 나타내며, 창의 속성과 메소드를 다룰 수 있습니다.

(2) Document 객체
현재 페이지의 내용을 나타내는 객체입니다.
웹 페이지의 구조를 조작하고, 요소를 선택하고, 변경할 수 있습니다.

(3) Navigator 객체
브라우저의 정보를 제공합니다.
브라우저의 이름, 버전, 운영 체제 등의 정보를 얻을 수 있습니다.

(4) Location 객체
현재 페이지의 URL 정보를 다루는 객체입니다.
URL을 조작하거나 파싱할 수 있습니다.

(5) History 객체
브라우저의 세션 히스토리를 조작하는 객체입니다.
사용자가 이전 또는 다음 페이지로 이동하도록 할 수 있습니다.

(6) XMLHttpRequest 객체
비동기적으로 서버와 통신할 수 있는 객체입니다.
AJAX 요청을 보내거나 서버로부터 데이터를 받을 때 사용됩니다.

(7) Console 객체
브라우저의 개발자 도구 콘솔에 메시지를 출력하는 데 사용됩니다.
디버깅 및 로깅에 유용합니다.

 

2. 브라우저 객체 사용법


(1) Window 객체

Window 객체는 자바스크립트에서 전역 객체로서, 브라우저 창을 나타내는 객체입니다. 여러 가지 속성과 메서드를 포함하고 있어 웹 페이지의 다양한 측면을 조작하고 관리하는 데 사용됩니다. 아래는 Window 객체의 몇 가지 주요 속성과 메서드, 그리고 간단한 사용 예시들입니다.

window.document : 현재 문서(Document)를 나타내는 Document 객체에 접근합니다.
window.location : 현재 창의 URL 정보를 다루는 Location 객체에 접근합니다.
window.navigator : 브라우저의 정보를 다루는 Navigator 객체에 접근합니다.
window.alert(message) : 경고 창을 띄우는 메서드입니다.
window.confirm(message) : 확인/취소 버튼이 있는 대화 상자를 띄우고 사용자의 응답을 받는 메서드입니다.
window.prompt(message, defaultText) : 입력 필드가 있는 대화 상자를 띄우고 사용자에게 텍스트를 입력받는 메서드입니다.
window.setTimeout(function, milliseconds) : 일정 시간이 지난 후에 함수를 실행하는 메서드입니다.
window.setInterval(function, milliseconds) : 일정 간격으로 함수를 반복 실행하는 메서드입니다.

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Window 객체 함수 예제</title>
</head>
<body>

<script>
    // 1. Alert 창 띄우기
    window.alert("안녕하세요!");

    // 2. Confirm 대화 상자
    if (window.confirm("계속 진행하시겠습니까?")) {
        console.log("사용자가 확인을 선택했습니다.");
    } else {
        console.log("사용자가 취소를 선택했습니다.");
    }

    // 3. Prompt 대화 상자
    const userInput = window.prompt("이름을 입력하세요.", "홍길동");
    console.log("사용자가 입력한 값:", userInput);

    // 4. 현재 창의 URL 정보
    const currentURL = window.location.href;
    console.log("현재 URL:", currentURL);

    // 5. 브라우저 창을 새로고침
    window.location.reload();

    // 6. 브라우저 창을 새로 열기
    window.open("https://www.example.com", "_blank");

    // 7. 현재 창 닫기
    window.close();

    // 8. 브라우저 창의 높이와 너비 가져오기
    const windowHeight = window.innerHeight;
    const windowWidth = window.innerWidth;
    console.log("창의 높이:", windowHeight, "창의 너비:", windowWidth);

    // 9. 스크롤바 위치 가져오기
    const scrollTop = window.scrollY;
    const scrollLeft = window.scrollX;
    console.log("세로 스크롤 위치:", scrollTop, "가로 스크롤 위치:", scrollLeft);

    // 10. 브라우저의 높이와 너비 가져오기
    const screenHeight = window.screen.height;
    const screenWidth = window.screen.width;
    console.log("화면의 높이:", screenHeight, "화면의 너비:", screenWidth);

    // 11. 브라우저가 온라인인지 확인
    const isOnline = window.navigator.onLine;
    console.log("온라인 여부:", isOnline ? "온라인" : "오프라인");

    // 12. 브라우저의 이름과 버전 정보
    const browserName = window.navigator.appName;
    const browserVersion = window.navigator.appVersion;
    console.log("브라우저 이름:", browserName, "버전:", browserVersion);

    // 13. 쿠키 설정
    document.cookie = "username=John Doe; expires=Thu, 18 Dec 2022 12:00:00 UTC; path=/";

    // 14. 쿠키 가져오기
    const usernameCookie = document.cookie;
    console.log("쿠키:", usernameCookie);

    // 15. setTimeout으로 일정 시간 후에 함수 실행
    function greet() {
        console.log("안녕하세요!");
    }
    window.setTimeout(greet, 2000); // 2초 후에 greet 함수 실행

    // 16. setInterval로 일정 간격으로 함수 실행
    function printTime() {
        const currentTime = new Date();
        console.log("현재 시간:", currentTime.toLocaleTimeString());
    }
    window.setInterval(printTime, 1000); // 1초 간격으로 printTime 함수 실행

</script>

</body>
</html>


(2) Document 객체

Document 객체는 웹 페이지의 내용을 나타내며 조작할 수 있는 객체입니다. HTML 문서의 구조를 표현하고, 웹 페이지에 있는 요소들을 선택하고 조작할 때 사용됩니다. 아래는 Document 객체의 주요 종류와 간단한 설명, 그리고 사용 예시를 담은 HTML 파일입니다.

document : 현재 문서를 나타내는 객체로, 기본적인 문서 조작 메서드를 제공합니다.
document.documentElement : <html> 요소를 나타내는 객체로, HTML 문서의 최상위 요소입니다.
document.body : <body> 요소를 나타내는 객체로, 웹 페이지의 본문을 다룰 수 있습니다.
document.head : <head> 요소를 나타내는 객체로, 문서의 헤더 부분을 조작할 수 있습니다.

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document 객체 사용 예제</title>
</head>
<body>

<script>
    // 1. 현재 문서의 제목 변경
    document.title = "새로운 제목";

    // 2. 현재 문서의 내용 변경
    document.body.innerHTML = "<h1>Hello, Document 객체!</h1>";

    // 3. 새로운 요소 생성 및 추가
    const newParagraph = document.createElement("p");
    newParagraph.textContent = "이것은 새로운 단락입니다.";
    document.body.appendChild(newParagraph);

    // 4. 요소 선택 및 스타일 변경
    const headerElement = document.querySelector("h1");
    headerElement.style.color = "blue";

    // 5. 이벤트 리스너 등록
    function handleClick() {
        alert("클릭 이벤트 발생!");
    }
    document.body.addEventListener("click", handleClick);
</script>

</body>
</html>


(3) Navigator 객체

Navigator 객체는 브라우저의 정보를 제공하는 객체로, 사용자 에이전트(User Agent)와 관련된 정보, 브라우저의 지원 기능, 언어 설정 등에 대한 정보를 포함합니다. 아래는 Navigator 객체의 주요 속성 중 몇 가지와 사용 예시를 담은 HTML 파일입니다.

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Navigator 객체 사용 예제</title>
</head>
<body>

<script>
    // 1. 브라우저의 이름과 버전 정보
    const browserName = navigator.appName;
    const browserVersion = navigator.appVersion;
    console.log("브라우저 이름:", browserName, "버전:", browserVersion);

    // 2. 사용자 에이전트 정보
    const userAgent = navigator.userAgent;
    console.log("사용자 에이전트:", userAgent);

    // 3. 브라우저의 언어 설정
    const userLanguage = navigator.language || navigator.userLanguage;
    console.log("브라우저 언어:", userLanguage);

    // 4. 플랫폼 정보
    const platform = navigator.platform;
    console.log("플랫폼:", platform);

    // 5. 쿠키를 지원하는지 여부
    const isCookieEnabled = navigator.cookieEnabled;
    console.log("쿠키 지원 여부:", isCookieEnabled ? "지원함" : "지원하지 않음");

    // 6. 자바스크립트가 활성화되어 있는지 여부
    const isJavaScriptEnabled = navigator.javaEnabled();
    console.log("자바스크립트 활성화 여부:", isJavaScriptEnabled ? "활성화됨" : "비활성화됨");

    // 7. 온라인 여부
    const isOnline = navigator.onLine;
    console.log("온라인 여부:", isOnline ? "온라인" : "오프라인");

    // 8. 웹픽셀 지원 여부
    const isWebPEnabled = navigator.mimeTypes["image/webp"];
    console.log("WebP 지원 여부:", isWebPEnabled ? "지원함" : "지원하지 않음");
</script>

</body>
</html>


(4) Location 객체

Location 객체는 현재 문서의 URL 정보를 나타내고 조작하는 데 사용되는 자바스크립트 객체입니다. 이 객체는 window.location을 통해 접근할 수 있습니다. Location 객체는 현재 문서의 URL을 분해하고, 프로토콜, 호스트, 경로, 쿼리 매개변수 등의 정보를 제공합니다.


href :전체 URL을 나타냅니다.
protocol : URL의 프로토콜 (예: "http:", "https:")을 나타냅니다.
host : URL의 호스트 이름과 포트 번호를 나타냅니다.
hostname : URL의 호스트 이름을 나타냅니다.
port : URL의 포트 번호를 나타냅니다.
pathname : URL의 경로를 나타냅니다.
search : URL의 쿼리 매개변수를 나타냅니다.
hash : URL의 해시 부분을 나타냅니다.

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Location 객체 사용 예제</title>
</head>
<body>

<script>
    // 현재 문서의 전체 URL
    const currentURL = window.location.href;
    console.log("현재 URL:", currentURL);

    // 프로토콜 (http, https 등)
    const protocol = window.location.protocol;
    console.log("프로토콜:", protocol);

    // 호스트 이름과 포트 번호
    const host = window.location.host;
    console.log("호스트:", host);

    // 호스트 이름
    const hostname = window.location.hostname;
    console.log("호스트 이름:", hostname);

    // 포트 번호
    const port = window.location.port;
    console.log("포트 번호:", port);

    // 경로
    const pathname = window.location.pathname;
    console.log("경로:", pathname);

    // 쿼리 매개변수
    const search = window.location.search;
    console.log("쿼리 매개변수:", search);

    // 해시 부분
    const hash = window.location.hash;
    console.log("해시:", hash);
</script>

</body>
</html>

 

다음 포스팅에서는 (5) History 객체, (6) XMLHttpRequest 객체, (7) Console 객체에 대해 이어서 설명하도록 하겠습니다.

반응형