브라우저 객체


브라우저 객체는 IE, Chrome등 많이 구현되어 있지만 특별한 표준 규격이 존재하는 것은 아니다. 하지만 최근에는 많이 유사해졌다. 예전에는 특정 회사의 제품에서는 동작하지 않는 기능들이 있었지만 최근들어 많이 해소 되고 있는 모습니다. 

브라우저 객체는 다음과 같은 계층 구조가 일반적이다.




DOM(Document Object Model)

이란 html과 같은 Document를 객체 모델로 만들어 관리하는 것을 뜻한다.


쿠키(Cookie)

서버에서 사용자들의 세션을 구별하기위한 간단한 저장 공간이라 볼 수 있다. 쿠키에는 영문 2000자 이내의 간단한 정보를 기록 할 수 있다. 다음과 같이 document를 통해서 접근할 수 있다. 다음 예제를 보자.




이러한 DOM은 각 회사마다 구현 방식이 달라 해당 브라우져의 웹사이트를 참조하여 문제를 해결해야 한다.

아래는 IE의 참조 사이트 이다.





 JavaScript는 코드 자체가 페이지와 함께 전송되어 Browser에서 처리된다. 하지만, 서버에서 동작하는 ASP, JSP, PHP등은 소스코드가 보호되며 서버에서 생성된 값을 HTML에 결과 값을 삽입해서 보여주는 방식으로 동작하게 되어 있다.



쿠키 만들기

아래 예제는 이상하게 IE에서 동작하지만 Chrome에서 동작하지 않는다.(옵션 차이일까?)


function setCookie(name, value, expires, domain, path, secure){

var strCookie = '';

strCookie += name+'='+encodeURIComponent(value);

if(expires){

var exp = new Date();

exp.setDate(exp.getDate() + expires);

strCookie +=';expires='+exp.toGMTString();

}

if(domain){strCookie +=';domain='+domain;}

if(path){strCookie +=';path='+path;}

if(secure){strCookie +=';secure';}

document.cookie = strCookie;

}


function getCookie(name){

var cs = document.cookie.split(';');

for(var i = 0; i < cs.length; i++){

var kv = cs[i].split('=');

if(kv[0] == name){return decodeURIComponent(kv[1]);}

}

return null;

}


var cnt = getCookie('js_cnt');

cnt = cnt ? ++cnt:1;

setCookie('js_cnt', cnt, 90);

document.write('당신은 이 사이트에'+cnt+'회, 액세스 하셨습니다.');



<!DOCTYPE html>


<html>

<head>

<meta charset="utf-8">


<script type='text/javascript' src='cookie.js'> </script>

</head>


<body>

<h1>JavaScript Cafe</h1>

</body>

</html>

 



Posted by 빨간 양말