Alert
- 경고창
- 새 창과 달리 tool bar가 존재하지 않으며 기능이 한정적임
<body>
<button onclick="popup()">alert</button>
<button onclick="conf()">confirm</button>
<button onclick="promp()">prompt</button>
</body>
<script>
function popup(){
//alert이 나타나면 문서내 모든 프로세스가 멈춘다.
alert('경고창입니다.');
}
function conf(){
var result = confirm('정말로 삭제하시겠습니까?'); //확인|취소
console.log(result); //true|false
if(result == true){
alert('삭제가 완료 되었습니다.')
}else{
alert('삭제가 취소 되었습니다.')
}
}
function promp(){
var name = prompt('당신의 이름을 입력하세요.');
console.log(name);
alert('안녕하세요 ' + name + '님:)');
}
</script>
Timing
- Browser에서는 특정 시간마다 어떤 일을 수행 할 수 있습니다.
- 특정 시간 후에 어떤 일을 수행 할 수도 있습니다.
- 그 시간의 단위는 1/1000 초(milliseconds) 입니다.
<body>
<h1 id="cnt">0</h1>
<button onclick="interval(this)">증가</button>
<button onclick="clearInter()">정지</button>
<button onclick="setTime()">3초 후 경고</button>
</body>
<script>
var i = 0;
var time;
function interval(elem){
console.log(elem);
elem.disabled = true;
//setInterval(실행할 함수, 간격);
time = setInterval(function(){ //clearInterval함수에 넣어주기 위해 변수에 담음
i++;
console.log(i);
document.getElementById('cnt').innerHTML = i;
},1000); //1000 : 1초
}
function clearInter(){
//console.log('click');
//clearInterval(중지할 인터벌)
clearInterval(time);
i = 0; //숫자 초기화
document.getElementById('cnt').innerHTML = i;
document.getElementsByTagName('button')[0].disabled = false; //비활성화 버튼 활성화
}
function setTime(){
//setTimeout(실행할 함수, 간격);
setTimeout(function(){
alert('3초가 경과했습니다.');
},3000);
}
</script>
- 이 기능을 이용해 남은시간 측정이나 특정시간 후에 페이지를 이동하는 기능을 수행할 수 있다.
- css를 이용하여 시각적인 애니메이션 효과도 줄 수 있다.
<head>
<meta charset="UTF-8">
<title>Dom Script</title>
<link rel="icon" href="../img/chrome.png">
<style>
#cnt{
color: red;
}
progress{
display: none;
width: 500px;
height: 25px;
}
#proc{
width: 10px;
height: 10px;
background-color: red;
position: absolute;
top: 100px;
left: 10px;
}
</style>
</head>
<body>
<h1><span id="cnt">5</span>초 후에 다운로드가 시작됩니다.</h1>
<progress id="download" min="0" max="100" value="0"></progress>
<div id="proc"></div>
</body>
<script>
var count = 5;
var msg = document.getElementById('cnt');
var bar = document.getElementById('download');
var inter = setInterval(function(){
count--;
msg.innerHTML = count;
},1000);
setTimeout(function(){
clearInterval(inter);
download();
},5000);
function download(){
var tag = document.getElementsByTagName('h1')[0];
tag.innerHTML = '다운로드 진행중(0%)';
bar.style.display = 'block';
var per = 0;
var obj = document.getElementById('proc');
inter = setInterval(function(){
per += 1;
obj.style.left = per*5;
bar.value = per;
tag.innerHTML = '다운로드 진행중(' + per +'%)';
console.log(per);
if(per == 100){
clearInterval(inter);
tag.innerHTML = '다운로드 완료';
}
},100);
}
</script>
Cookie
- Web 사용흔적을 담기 위해 만들어졌다.
- Html간에 데이터 공유가 이루어 지지 않아 Cookie를 활용함
- java Script에서 제어 가능하고, 사용자 PC에 저장된다는 점 때문에 보안상 사용을 권하지 않음
JSON(Java Script Object Notation)
- JavaScript Object 형태로 전송한다는 의미
- XML과 함께 최근 데이터 전송 시 굉장히 많이 활용
- 보안이 강조되는 데이터에서는 사용하지 않는 편이 좋다.
<body>
<input type="text" value=""/>
<button id="btn">JSON 변경</button>
</body>
<script>
var obj = {}; //object : 키:값으로 구성(자바스크립트 한정 문자열로 구성)
var arr = []; //array : 인덱스와 값으로 구성
// 위 두개의 형태를 JSON(Java Script Object Notation)이라고 부름
var info = {'age':22};
info.firstName = 'su-yeon';
info['lastName'] = 'lee';
console.log(info);
arr.push(info);
console.log(arr);
obj.list = arr;
console.log(obj);
//json -> string
var txt = JSON.stringify(obj);
document.getElementsByTagName('input')[0].value = txt; //객체자체가 나옴(색글씨)
console.log(txt); //문자열로 나옴(검정글씨)
document.getElementById('btn').addEventListener('click',function(){
//text -> JSON
var json = JSON.parse(txt);
console.log(json);
})
</script>
- JSON은 작성 시 문법오류가 굉장히 많을 수 있어 작성된 JSON이 맞는지 확인하기 위해 아래 사이트를 활용
- http://json.parser.online.fr/
'코딩도전기 > Dom' 카테고리의 다른 글
부모창_자식창 코드리뷰 (0) | 2023.02.10 |
---|---|
CODO Day7_Java Script_DOM (0) | 2023.02.09 |
DOM_TEST (0) | 2023.02.09 |
CODO Day6_Java Script_Dom(속성&이벤트) (0) | 2023.02.08 |