๐ JavaScript
โ 1. screen ๊ฐ์ฒด
screen ๊ฐ์ฒด๋ ์ฌ์ฉ์์ ๋ชจ๋ํฐ ์ ๋ณด(์์ฑ)์ ์ ๊ณตํ๋ ๊ฐ์ฒด์
๋๋ค. ์๋ฅผ ๋ค์ด ๋ชจ๋ํฐ์ ๋๋น๋ ๋์ด ๋๋ ์ปฌ๋ฌ ํํ bit์ ๋ฐํํฉ๋๋ค.
1-1. ๊ธฐ๋ณธํ
screen.์์ฑ;
screen.width; //๋ชจ๋ํฐ์ ๋๋น๊ฐ ๋ฐํ
1-2. screen ๊ฐ์ฒด ์ ์์ฑ ์ข ๋ฅ
์ข ๋ฅ | ์ค๋ช |
screen.width | ํ๋ฉด์ ๋๋น๊ฐ ๋ฐํ |
screen.height | ํ๋ฉด์ ๋์ด๊ฐ ๋ฐํ |
screen.availWidth | (์์ ํ์์ค์ ์ ์ธํ) ํ๋ฉด์ ๋๋น๊ฐ ๋ฐํ |
screen.availHeight | (์์ ํ์์ค์ ์ ์ธํ) ํ๋ฉด์ ๋์ด๊ฐ ๋ฐํ |
screen.colorDepth | ์ฌ์ฉ์ ๋ชจ๋ํฐ๊ฐ ํํ ๊ฐ๋ฅํ ์ปฌ๋ฌ bit๋ฅผ ๋ฐํ |
โ 2. location ๊ฐ์ฒด
location ๊ฐ์ฒด๋ ์ฌ์ฉ์ ๋ธ๋ผ์ฐ์ ์ ๊ด๋ จ๋ ์์ฑ๊ณผ ๋ฉ์๋๋ฅผ ์ ๊ณตํด์. ํนํ ํ์ฌ URL์ ๋ํ ์ ๋ณด(์์ฑ)์ ์๋ก ๊ณ ์นจ(reload) ๋ฉ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
2-1. ๊ธฐ๋ณธํ
location.์์ฑ;
location.๋ฉ์๋();
// ์ฌ์ฉ์ ๋ธ๋ผ์ฐ์ ์ URL ๊ฒฝ๋ก ๊ฐ ๊ฐ์ ธ์ค๊ธฐ
location.href;
// ์ฌ์ฉ์ ๋ธ๋ผ์ฐ์ ์ URL๊ฒฝ๋ก๋ฅผ ์ง์ ํ URL ์ฃผ์(http://www.google.com)๋ก ๋ณ๊ฒฝ
location.href= "http://www.google.com"
// ์ฌ์ฉ์ ๋ธ๋ผ์ฐ์ ๋ฅผ ์๋ก ๊ณ ์นจ
location.reload();
1-2. screen ๊ฐ์ฒด ์ ์์ฑ ์ข ๋ฅ
์ข ๋ฅ | ์ค๋ช |
location.href | ์ฃผ์ ์์ญ์ ์ฐธ์กฐ ์ฃผ์๋ฅผ ์ค์ ํ๊ฑฐ๋ URL์ ๋ฐํ |
location.hash | URL์ ํด์๊ฐ(#์ ๋ช ์๋ ๊ฐ) ๋ฐํ |
location.hostname | URL์ ํธ์คํธ ์ด๋ฆ์ ์ค์ ํ๊ฑฐ๋ ๋ฐํ |
location.host | URL์ ํธ์คํธ ์ด๋ฆ๊ณผ ํฌํธ ๋ฒํธ ๋ฐํ |
location.protocol | URL์ ํ๋กํ ์ฝ์ ๋ฐํ |
location.search | URL์ ์ฟผ๋ฆฌ(์์ฒญ๊ฐ) ๋ฐํ |
location.reload() | ๋ง์น ๋ธ๋ผ์ฐ์ ์์ F5ํค๋ฅผ ๋๋ฅธ ๊ฒ์ฒ๋ผ ์๋ก๊ณ ์นจ |
location.href
ํ์ฌ ๋ฌธ์์ URL์ ๋ฐํ
ํ์ฌ ํ์ด์ง์ URL์ด "https://www.example.com/page.html"์ธ ๊ฒฝ์ฐ:
console.log(location.href); // "https://www.example.com/page.html"
location.hash
ํด์๋ URL์ ๋ ๋ถ๋ถ์ # ๊ธฐํธ์ ํจ๊ป ๋ํ๋๋ฉฐ, ์ฃผ๋ก ์น ํ์ด์ง ๋ด์์ ํน์ ์น์
์ ์๋ณํ๋ ๋ฐ ์ฌ์ฉ๋จ.
์๋ฅผ ๋ค์ด, URL์ด "https://www.example.com/page.html#section1"์ธ ๊ฒฝ์ฐ:
console.log(location.hash); // "#section1"
location.hostname
ํ์ฌ ํ์ด์ง์ ํธ์คํธ(๋๋ฉ์ธ) ์ด๋ฆ ๋ฐํ
์๋ฅผ ๋ค์ด, URL์ด "https://www.example.com/page.html#section1"์ธ ๊ฒฝ์ฐ:
console.log(location.hostname); // "www.example.com"
location.host
ํ์ฌ URL์ ํธ์คํธ(๋๋ฉ์ธ) ์ด๋ฆ๊ณผ ํฌํธ ๋ฒํธ๋ฅผ ํฌํจํ๋ ๋ฌธ์์ด์ ๋ฐํ
์๋ฅผ ๋ค์ด, URL์ด "https://www.example.com:8080/page.html"์ธ ๊ฒฝ์ฐ:
console.log(location.host); // "www.example.com:8080"
location.protocol
ํ๋กํ ์ฝ์ ์น ํ์ด์ง์ ์ฌ์ฉ๋ ํต์ ํ๋กํ ์ฝ์ ๋ฐํ
์๋ฅผ ๋ค์ด, URL์ด "https://www.example.com/page.html"์ธ ๊ฒฝ์ฐ:
console.log(location.protocol); // "https:"
location.search
ํ์ฌ URL์ ์ฟผ๋ฆฌ ๋ฌธ์์ด ๋ฐํ
์ฟผ๋ฆฌ ๋ฌธ์์ด์ URL์ ๋ฌผ์ํ(?) ๋ท๋ถ๋ถ์ผ๋ก, ์ฃผ๋ก ์น ํ์ด์ง์ ์ ๋ฌ๋๋ ๋งค๊ฐ๋ณ์์ ๊ฐ์ ์์ ํฌํจ
์๋ฅผ ๋ค์ด, URL์ด "https://www.example.com/page.html?name=John&age=30"์ธ ๊ฒฝ์ฐ:
console.log(location.search); // "?name=John&age=30"
โ 3. history ๊ฐ์ฒด
history ๊ฐ์ฒด๋ ์ฌ์ฉ์๊ฐ ๋ฐฉ๋ฌธํ ์ฌ์ดํธ์ ๊ธฐ๋ก์ ๋จ๊ธฐ๊ณ ์ด์ ๋ฐฉ๋ฌธ ์ฌ์ดํธ์ ๋ค์ ๋ฐฉ๋ฌธ์ฌ์ดํธ๋ก ๋ค์ ๋์๊ฐ ์ ์๋ ์์ฑ๊ณผ ๋ฉ์๋๋ฅผ ์ ๊ณตํด์
3-1. ๊ธฐ๋ณธํ
history.์์ฑ;
history.๋ฉ์๋();
history.๋ฉ์๋(n);
// ์ฌ์ฉ์๊ฐ ๋ฐฉ๋ฌธํ ์ฌ์ดํธ์ ๊ธฐ๋ก์ ๋จ๊ธด ์ด ์๋
history.length;
// ์ฌ์ฉ์๊ฐ ๋ฐฉ๋ฌธํ ์ฌ์ดํธ ์ค ๋ฐ๋ก ์ด์ ์ ๋ฐฉ๋ฌธํ ์ฌ์ดํธ๋ก ์ด๋
history.back();
// ์ฌ์ฉ์๊ฐ ๋ฐฉ๋ฌธํ ์ฌ์ดํธ ์ค ๋ ๋จ๊ณ ์ด์ ์ ๋ฐฉ๋ฌธํ ์ฌ์ดํธ๋ก ์ด๋
history.back(2);
3-2. history ๊ฐ์ฒด ์ ์์ฑ ์ข ๋ฅ
์ข ๋ฅ | ์ค๋ช |
history.back() | ์ด์ ๋ฐฉ๋ฌธ ์ฌ์ดํธ๋ก ์ด๋ |
history.forward() | ๋ค์ ๋ฐฉ๋ฌธ์ฌ์ดํธ๋ก ์ด๋ |
history.go(์ด๋ ์ซ์) | ์ด๋ ์ซ์์ -2๋ฅผ ๊ธฐ์ ํ๋ฉด 2๋จ๊ณ ์ด์ ์ ๋ฐฉ๋ฌธ ์ฌ์ดํธ๋ก ์ด๋ |
history.length | ๋ฐฉ๋ฌธ ๊ธฐ๋ก์ ์ ์ฅ๋ ๋ชฉ๋ก์ ๊ฐ์๋ฅผ ๋ฐํ |
โ 4. navigator ๊ฐ์ฒด
ํ์ฌ ๋ฐฉ๋ฌธ์๊ฐ ์ฌ์ฉํ๋ ๋ธ๋ผ์ฐ์ ์ ๋ณด์ ์ด์์ฒด์ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ๊ฐ์ฒด์ ๋๋ค.
4-1. ๊ธฐ๋ณธํ
navigator.์์ฑ;
์๋๋ ํฌ๋กฌ(Chrome) ๋ธ๋ผ์ฐ์ ์์ ํ
์คํธํ ๊ฒฐ๊ณผ
// ๋ฐฉ๋ฌธ์์ ๋ธ๋ผ์ฐ์ ์ ์ด์์ฒด์ (Operating System) ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค.
// ex) navigator.userAgent;
"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/60.0.3112.113 Safari/537.36"
- Mozilla/5.0 ๊ธฐ๋ณธํ๋ซํผ
- (Windows NT 6.1; Win64; x64) ์ด์์ฒด์ ์ ๋ณด
- AppleWebKit/537.36 (KHTML, like Gecko) ์ฌ์ฉ์ค์ธ ๋ธ๋ผ์ฐ์ ์ ์์ง ์ด๋ฆ
- Chrome/60.0.3112.113 ์ฌ์ฉ ์ค์ธ ๋ธ๋ผ์ฐ์ ์ ์ด๋ฆ
- Safari/537.36 ๊ฐ์ ์์ง์ ์ฌ์ฉ์ค์ด๋ฉฐ ํธํ ๊ฐ๋ฅํ ๋ค๋ฅธ ๋ธ๋ผ์ฐ์
4-2. navigator ๊ฐ์ฒด ์ ์์ฑ ์ข ๋ฅ
์ข ๋ฅ | ์ค๋ช |
navigator.appCodeName | ํ์ฌ ๋ธ๋ผ์ฐ์ ์ ์ฝ๋๋ช
๋ฐํ ์) "Mozilla" ๋ฐํ |
navigator.appName | ํ์ฌ ๋ธ๋ผ์ฐ์ ์ ์ด๋ฆ ๋ฐํ ์) "Netscape" ๋ฐํ |
navigator.appVersion | ํ์ฌ ๋ธ๋ผ์ฐ์ ์ ๋ฒ์ ์ ๋ณด ๋ฐํ ์) 5.0(Windows) ๋ฐํ |
navigator.language | ํ์ฌ ๋ธ๋ผ์ฐ์ ๊ฐ ์ฌ์ฉํ๊ณ ์๋ ์ธ์ด ๋ฐํ ์) ํ๊ตญ์ด๋ฅผ ์ฌ์ฉ์ค์ด๋ฉด "ko"๋ฐํ |
navigator.product | ํ์ฌ ๋ธ๋ผ์ฐ์ ์ ์์ง ์ด๋ฆ ๋ฐํ ์) Chrome์ ๊ฒฝ์ฐ "Gecko" ๋ฐํ |
navigator.platform | ํ์ฌ ์ปดํจํฐ์ ์ด์์ฒด์ ์ ๋ณด ์ ๊ณต ์ด์์ฒด์ ๊ฐ ์๋์ฐ์ด๊ณ ์์คํ ์ข ๋ฅ๊ฐ 64๋นํธ(bit)๋ผ๋ ๋ธ๋ผ์ฐ์ ๊ฐ 32๋นํธ๋ก ์ค์น๋์๋ค๋ฉด "Win32" ๋ฐํ |
navigator.onLine | ์จ๋ผ์ธ ์ํ ์ฌ๋ถ์ ๋ํ ์ ๋ณด ์ ๊ณต ๋ง์ผ ์ธํฐ๋ท์ด ์ ์์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์๋ ์ํ๋ผ๋ฉด true ๊ฐ ๋ฐํ |
navigator.userAgent | ๋ธ๋ผ์ฐ์ ์ ์ด์์ฒด์ ์ ์ข ํฉ ์ ๋ณด ์ ๊ณต |
๋ธ๋ผ์ฐ์ ๊ฐ์ฒด ๋ชจ๋ธ์ ์ฌ์ฉํด์ ์ด์์ฒด์ ๋ฐ ์คํฌ๋ฆฐ ์ ๋ณด ์ป๊ธฐ!
<script>
var info = navigator.userAgent.toLowerCase();
var osImg = null;
if(info.indexOf('windows') >= 0 ) {
osImg = "windows.png";
} else if(info.indexOf('macintosh') >= 0 ) {
osImg = "macintosh.png";
} else if(info.indexOf('iphone') >= 0 ) {
osImg = "iphone.png";
} else if(info.indexOf('android') >= 0 ) {
osImg = "android.png";
}
document.write("<img src=\"images/" + osImg + "\">", "<br>");
var scr = screen;
var sc_w = scr.width;
var sc_h = sc.height;
document.write("๋ชจ๋ํฐ ํด์๋ ๋๋น: " + sc.w + "px","<br>");
document.write("๋ชจ๋ํฐ ํด์๋ ๋์ด: " + sc.h + "px","<br>");
</script>