์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•


http://hyeonseok.com/ ์‹ ํ˜„์„๋‹˜๊ป˜์„œ ์šด์˜์ค‘์ธ ๋ธ”๋กœ๊ทธ์— ์˜ฌ๋ฆฐ ๊ธ€์ž…๋‹ˆ๋‹ค.
์›๋ฌธ์„ ๋ณด์‹œ๋ ค๋ฉด http://hyeonseok.com/docs/accessible-javascript/ ๋กœ ์ ‘์†ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.







์ ‘๊ทผ์„ฑ์„ ํ•ด์น˜์ง€ ์•Š๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์‚ฌ์šฉ



์‹ ํ˜„์„

2006๋…„ 5์›”

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•œ ์ž˜๋ชป๋œ ์ƒ๊ฐ

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—†์ด๋Š” ๊ฐœ๋ฐœ์„ ํ•  ์ˆ˜ ์—†๋‹ค?

๋งŽ์€ ๊ฐœ๋ฐœ์ž๋“ค์ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์—†์ด๋Š” ๊ฐœ๋ฐœ์„ ํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๊ทธ๋งŒํผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ผ์ƒ์ ์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ , ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•ด์„œ ์ž˜๋ชป ์˜คํ•ดํ•˜๊ณ  ์žˆ๋Š” ๋ถ€๋ถ„์ด ๋งŽ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ํด๋ผ์ด์–ธํŠธ ํ™˜๊ฒฝ์—์„œ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•ต์‹ฌ๋กœ์ง์— ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ๋œ๋‹ค. ํ•ต์‹ฌ์ ์ธ ๋กœ์ง์€ ์„œ๋ฒ„์‚ฌ์ด๋“œ ์–ธ์–ด๋กœ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ณ  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ทธ ์˜†์—์„œ UI๊ตฌ์„ฑ์„ ์œ„ํ•ด์„œ ๋„์™€์ฃผ๊ธฐ๋งŒ ํ•ด์•ผ ํ•œ๋‹ค. ๋ฐ”๊ฟ” ๋งํ•˜๋ฉด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์—†์–ด๋„ ํ•ต์‹ฌ ๋กœ์ง์€ ์ž‘๋™์„ ํ•ด์•ผ ํ•œ๋‹ค. ๋จผ์ € ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—†์ด HTML๊ณผ ์„œ๋ฒ„์‚ฌ์ด๋“œ ์–ธ์–ด๋งŒ์œผ๋กœ ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๊ฐœ๋ฐœ์„ ๋๋‚ธ ํ›„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•ด์„œ ์ข‹์€ UI๋‚˜ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋“ฑ์„ ํ•˜๋Š” ๋ถ€๋ถ„์„ ์ถ”๊ฐ€ ํ•˜๋Š” ์ˆœ์„œ๋กœ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค. ๋งŒ์•ฝ ์ด๋ฅผ ์–ด๊ธฐ๊ณ  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ธฐ๋Šฅ์˜ ์ผ๋ถ€๋กœ ์‚ฌ์šฉํ•˜๋ฉด ์ ‘๊ทผ์„ฑ์ด ๋–จ์–ด์ง€๋Š” ๊ฒƒ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ณด์•ˆ๋„ ๋–จ์–ด์ง€๊ณ  ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ๋„ ๋ณด์žฅ๋˜์ง€ ์•Š๋Š”๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ํ™˜๊ฒฝ๋„ ๊ณ ๋ ค๋ฅผ ํ•ด ์ค˜์•ผ ํ•˜๋Š”๊ฐ€?

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ํ™˜๊ฒฝ์ด ์ผ๋ฐ˜์ ์ธ ์ƒํ™ฉ์€ ์•„๋‹ˆ์ง€๋งŒ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ๊ณ ๋ ค๋Š” ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•˜๋‹ค. ์‹ค์ œ๋กœ ๋ธŒ๋ผ์šฐ์ ธ์— ๋”ฐ๋ผ์„œ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฒ„์ ผ์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๊ณ  ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ๋Š” ์ž˜ ์ž‘๋™ํ•˜๋˜ ๊ธฐ๋Šฅ์ด ์–ด๋–ค ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ์ž ์ค‘์—์„œ๋„ ์—ฌ๋Ÿฌ ์ด์œ ๋กœ ์Šค์Šค๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‚ฌ์šฉ์„ ์ค‘์ง€ํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋ถˆํ•„์š”ํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ ‘๊ทผ์„ฑ์„ ๋–จ์–ด๋œจ๋ฆฌ๋Š” ๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฅธ ํŽ˜์ด์ง€ ์ œ์ž‘ ๋ฐฉ๋ฒ•์€ ์•„๋‹ˆ๋‹ค.

์„œ๋ฒ„ ๋ถ€ํ•˜๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ๋งŒ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ํ•œ๋‹ค?

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•ด์„œ ์„œ๋ฒ„์˜ ๋ถ€ํ•˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์•Œ๊ณ  ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์„ ์ฒ˜๋ฆฌ๋ฅผ ํ–‰ํ•จ์œผ๋กœ์„œ ๋„คํŠธ์›์ด๋‚˜ ์„œ๋ฒ„์˜ ์ฒ˜๋ฆฌ๋ฅผ ๊ฐ์†Œ์‹œํ‚จ๋‹ค๋Š” ๊ฒƒ์ธ๋ฐ ์ด๊ฒƒ์„ ์ž˜๋ชป ์ดํ•ดํ•˜์—ฌ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋งŒ์œผ๋กœ ์œ ํšจ์„ฑ์„ ์ฒดํฌํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ์žˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์„ ์ฒ˜๋ฆฌ๋ฅผ ํ•œ๊ฒฐ๊ณผ๋ฌผ์„ ๊ทธ๋Œ€๋กœ ๋ฏฟ์œผ๋ฉด ์•ˆ๋œ๋‹ค. ์‚ฌ์šฉ์ž์ธก์œผ๋กœ ๋ถ€ํ„ฐ ๋„˜์˜ค์˜จ ๋ชจ๋“  ๊ฐ’์€ ๊ทธ ๊ฐ’์˜ ์œ ํšจ์„ฑ์„ ์™„์ „ํžˆ ๋ณด์žฅํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„์ธก์—์„œ๋„ ์œ ํšจ์„ฑ ์ฒดํฌ๋ฅผ ํ•ด ์ค˜์•ผ๋งŒ ํ•œ๋‹ค. ์ด๊ฒƒ์€ ์„œ๋ฒ„์˜ ๋ถ€ํ•˜๋ฅผ ๋†’์ด๋Š” ๊ฒƒ ์ด์ „์— ์ž๋ฃŒ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ์ค‘์š”ํ•œ ๊ณผ์ •์ด๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ์„œ๋ฒ„์— ์ž„์˜๋กœ ๋ณ€์กฐ๋œ ๊ฐ’์„ ๋ณด๋‚ด๋Š” ์ผ์€ ์•„์ฃผ ์‰ฌ์šด ์ผ์ด๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด UI๊ฐ€ ๋ถˆํŽธํ•ด ์ง„๋‹ค?

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•ด์„œ RIA๋‚˜ ์ข‹์€ UI๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์‚ฌ์‹ค์ด์ง€๋งŒ ์›นํ™˜๊ฒฝ์„ ์ดํ•ดํ•˜๊ณ  ์ผ๋ฐ˜์ ์ธ ์›น ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ด์šฉํ•ด์„œ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๋” ์ข‹์€ UI๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค. ์‚ฌ์šฉ์ž ์นœํ™”์ ์ธ UI์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์„ ํ•ด์•ผ์ง€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค๊ณ  ์ข‹์€ UI๊ฐ€ ๋‚˜์˜ค๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ์‹ค์ œ์ ์œผ๋กœ ๊ฐ€์žฅ ์‚ฌ์šฉ์ž๊ฐ€ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด UI๋Š” ์‚ฌ์šฉ์ž OS๋‚˜ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ์ปจํŠธ๋กค ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๊ณ  ์ด๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—†์ด๋„ ์ถฉ๋ถ„ํžˆ ๊ฐ€๋Šฅํ•˜๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์— ๋‚ด๋ ค๋ณด๋‚ด์ง€๊ณ  ์‚ฌ์šฉ์ž์˜ ๋ธŒ๋ผ์šฐ์ ธ์—์„œ ์‹คํ–‰์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ด์— ์˜์กดํ•ด์„œ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๊ฒŒ ๋˜๋ฉด ๋ณด์•ˆ, ์ ‘๊ทผ์„ฑ์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๊ธฐ ์‰ฝ๋‹ค. ์ด๋Ÿฌํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํŠน์ง•์„ ์ •ํ™•ํžˆ ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ ์ž˜๋ชป๋œ ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•์ด๋‚˜ ์ƒ์‹๋“ค ๋•Œ๋ฌธ์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์˜ค์šฉ๋˜๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์–ด๋””๊นŒ์ง€๋‚˜ ๋ณด์กฐ์ ์ธ ์ˆ˜๋‹จ์ด๋ผ๋Š” ๊ฒƒ์„ ์ดํ•ดํ•˜๊ณ  ํ•ต์‹ฌ์ ์ธ ๊ธฐ๋Šฅ์„ ํ•ด์น˜์ง€ ์•Š๋Š” ํ•œ๋„์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ฌด์—‡๋ณด๋‹ค ์ค‘์š”ํ•˜๋‹ค.


์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์„ ์–ธ

<script language="Javascript">
//code
</script>


์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” <script> ์—˜๋ฆฌ๋จผํŠธ๋กœ ์„ ์–ธ์„ ํ•œ๋‹ค. ๋ชจ๋“  <script>์—˜๋ฆฌ๋จผํŠธ๋Š” type์„ ๋ช…์‹œํ•ด ์ฃผ์–ด์•ผ ํ•˜๊ณ  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ type์€ "text/javascript" ์ด๋‹ค. ๋งŽ์€ ๊ฒฝ์šฐ language ๋งŒ์„ ์„ ์–ธํ•ด์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฒ„์ ผ์„ ๋ช…์‹œํ•˜๋Š”๋ฐ ๋ฐ˜๋“œ์‹œ type๋„ ๊ฐ™์ด ๋ช…์‹œ๋ฅผ ํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

<script type="text/javascript">
//code
</script>



<a>์˜ href ์†์„ฑ๊ณผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์‚ฌ์šฉ

href๋Š” Hypertext REFerence์˜ ์•ฝ์ž์ด๋‹ค. ๋‹ค์‹œ ๋งํ•ด์„œ hypertext์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” uri๋ฅผ ๊ทธ ๊ฐ’์œผ๋กœ ๊ฐ–๋Š”๋‹ค. ํ•˜์ง€๋งŒ ๋งŽ์€ ๊ฒฝ์šฐ ์ด href์•ˆ์— "javascript:myFunction()"๊ณผ ๊ฐ™์ด ์ž˜๋ชป๋œ ๊ตฌ๋ฌธ์„ ์ด์šฉํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ด์™€ ๊ฐ™์ด href์•ˆ์— ์ž˜๋ชป๋œ ๊ฐ’์ด ๋“ค์–ด๊ฐ€๊ฒŒ ๋  ๊ฒฝ์šฐ, ๋ถ๋งˆํฌ๋‚˜ ์ƒˆ์ฐฝ, ์ƒˆํƒญ์œผ๋กœ ์—ด๊ธฐ ๋“ฑ์˜ href ๊ด€๋ จ๋œ ๋ธŒ๋ผ์šฐ์ €์˜ ๊ธฐ๋Šฅ๋“ค์ด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๊ฒŒ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ href์•ˆ์—๋Š” ํ•ญ์ƒ uri๊ฐ€ ๋“ค์–ด๊ฐ€๋„๋ก ํ•˜๊ณ  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ ์šฉ์€ onclick๊ณผ ๊ฐ™์€ ์ด๋ฒคํŠธ ์†์„ฑ์„ ์ด์šฉํ•ด์•ผ ํ•œ๋‹ค.

์˜๋ฏธ ์—†๋Š” href ๊ฐ’์„ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ

์‚ฌ์šฉ์ž์˜ ๋งํฌ ํด๋ฆญ์ด ๋งํฌ์™€ ๊ด€๋ จ์ด ์žˆ๊ณ  ์ด๋ฅผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•ด์„œ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค๋ฉด ์šฐ์„ ์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋นผ๊ณ ๋„ ํŽ˜์ด์ง€์˜ ์ด๋™์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ href์— ์ ์ ˆํ•œ ๊ฐ’์„ ๋„ฃ์–ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค. ์ด์™€ ๊ฐ™์€ ๊ฒฝ์šฐ๋กœ ํƒญ๋ฉ”๋‰ด๋ฅผ ๋“ค ์ˆ˜ ์žˆ๋‹ค. ํƒญ๋ฉ”๋‰ด์˜ ๊ฒฝ์šฐ ํƒญ์„ ๋ˆ„๋ฅด๋ฉด ํ•ด๋‹น ํƒญ๊ณผ ๊ด€๋ จ์žˆ๋Š” ์ปจํ…์ธ ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์‹์œผ๋กœ ์ž‘๋™ํ•˜๊ฒŒ ๋œ๋‹ค. javasript๊ฐ€ ์—†๋‹ค๋ฉด ํƒญ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ ํ•ด๋‹น ์ปจํ…์ธ ๋กœ ์ด๋™์„ ํ•˜๋Š” ์‹์œผ๋กœ ๊ตฌํ˜„ ๋˜๋ฉด ๋œ๋‹ค. href ์•ˆ์˜ ๊ฐ’์œผ๋กœ ํŽ˜์ด์ง€ ์•ˆ์—์„œ์˜ ํ•ด๋‹น ์ปจํ…์ธ  ์•ต์ปค ์ฃผ์†Œ๋ฅผ ๋„ฃ๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ„๋‹จํžˆ ๊ตฌํ˜„ ๋œ๋‹ค.

<a href="#notice-list"><img src="notice-tab.gif" alt="Notice" /></a>


๊ทธ๋ฆฌ๊ณ  ์ด ๋งˆํฌ์—…์„ ๊ธฐ๋ณธ์œผ๋กœ ํ•˜์—ฌ ์ด๋ฒคํŠธ ์†์„ฑ์œผ๋กœ ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

<a href="#notice-list" onclick="showNoticeTab(); return false;"><img src="notice-tab.gif" alt="Notice" /></a>


onclick์œผ๋กœ ํƒญ์„ ๋ณด์—ฌ์ค€ ํ›„ false๋ฅผ ๋ฆฌํ„ดํ•˜์—ฌ ํ•ด๋‹น ์•ต์ปค๋กœ ์ด๋™ํ•˜์ง€ ์•Š๋„๋ก ์ฒ˜๋ฆฌ ํ•œ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ž‘๋™์„ ํ•  ๋•Œ์—๋Š” ํด๋ฆญํ•˜๋ฉด ์ •์ƒ์ ์œผ๋กœ ํƒญ์œผ๋กœ ์ž‘๋™์„ ํ•  ๊ฒƒ์ด๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์„ ๊ฒฝ์šฐ์—๋Š” ํ•ด๋‹น ์ปจํ…์ธ ๋กœ ์ด๋™์„ ํ•˜์—ฌ ๋†’์€ ์ ‘๊ทผ์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋งŒ์•ฝ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋งํฌ์™€ ๊ด€๋ จ์ด ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” <a>ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ ์šฉํ•˜๋ฉด ์•ˆ๋œ๋‹ค. ๋ณดํ†ต ํŠน์ • ํšจ๊ณผ๋ฅผ ์ฃผ๋Š” ๊ฒƒ์ด ์ด๋Ÿฌํ•œ ๊ฒƒ์— ํ•ด๋‹คํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ์ด ๊ฒฝ์šฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ž‘๋™์„ ํ•˜์ง€ ์•Š์•„๋„ ์ปจํ…์ธ  ์ดํ•ด์— ํฌ๊ฒŒ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์ด๋‹ค.

<img src="button.gif" style="cursor: pointer;" onclick="myAction()" />


ํšจ๊ณผ๋ฅผ ์œ„ํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋‹จ์ˆœํžˆ onclick์„ ์ด์šฉํ•ด์„œ ์ ์šฉ์„ ํ•˜๊ณ  <a>๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ๋งˆ์šฐ์Šค ํฌ์ธํ„ฐ๋ฅผ ์˜ฌ๋ ธ์„ ๋•Œ ์†๋ชจ์–‘์œผ๋กœ ๋‚˜์˜ค๋Š” ๊ฒƒ์€ ์Šคํƒ€์ผ๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉด ๋œ๋‹ค.

ํŒ์—…์ฐฝ์„ ์—ด ๋•Œ(window.open)

<img src="openWindow.gif" onclick="window.open('popup.html', '', 'widht=300,height=200')">


<a href="#"><img src="openWindow.gif" onclick="window.open('popup.html', '', 'widht=300,height=200')"></a>


href์— #๊ณผ ๊ฐ™์€ ์˜๋ฏธ ์—†๋Š” ๊ฐ’์„ ๋„ฃ๊ฑฐ๋‚˜ onclick ์•ˆ์— ๊ฒฝ๋กœ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋Š”๋ฐ ํŒ์—…์ฐฝ์€ ๋งํฌ์ด๊ณ  ํŽ˜์ด์ง€๊ฐ€ ๋ณ„๋„๋กœ ์กด์žฌ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— <a>๋ฅผ ์ด์šฉํ•ด์„œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ณ  href์—”๋Š ํ•ด๋‹น ํŒ์—…์˜ ๊ฒฝ๋กœ๋ฅผ ๋„ฃ์–ด์•ผ ํ•œ๋‹ค.

<a href="popup.html" onclick="window.open(this.href, 'popupName', 'width=300,height=200'); return false;"><img src="openWindow.gif"></a>


์ด๋Ÿด ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž๊ฐ€ ์ž์‹ ์˜ ์˜๋„ ๋Œ€๋กœ ํŒ์—…์ฐฝ์„ ์ƒˆ์ฐฝ, ์ƒˆํƒญ ๋“ฑ์œผ๋กœ ์—ด ์ˆ˜ ์žˆ๊ณ  ์‹ฌ์ง€์–ด ์ฆ๊ฒจ ์ฐพ๊ธฐ๋„ ํ•  ์ˆ˜ ์žˆ๋‹ค.


์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•œ ํŽ˜์ด์ง€ ์ด๋™

์›น์‚ฌ์ดํŠธ๋ฅผ ์ด์šฉํ•˜๋‹ค ๋ณด๋ฉด ํผ์—์„œ ๊ฐ’์„ ์ž…๋ ฅํ•˜๊ณ  ์„œ๋ฐ‹์„ ํ•˜๋Š” ์ˆœ๊ฐ„ "๋”ฐ๋‹ค๋‹ค๋‹ฅ" ํ•˜๋Š” ์‹์œผ๋กœ ํด๋ฆญ์„ ์—ฌ๋Ÿฌ๋ฒˆ ํ•œ ๊ฒƒ๊ณผ ๊ฐ™์€ ์†Œ๋ฆฌ๊ฐ€ ๋‚˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์ ‘ํ•˜๊ฒŒ ๋œ๋‹ค. ํ”„๋กœ์„ธ์Šค๊ฐ€ ์—ฌ๋ŸฌํŽ˜์ด์ง€์— ๊ฑธ์ณ์„œ ์ผ์–ด๋‚˜๊ฒŒ ๋˜๋Š”๋ฐ ์ด ์ฒ˜๋ฆฌ๋ฅผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์„œ ์ด๋Ÿฌํ•œ ํ˜„์ƒ์ด ๋ฐœ์ƒ์„ ํ•˜๊ฒŒ ๋œ๋‹ค.

<script type="text/javascript">document.location.href="redirection.html";</script>


์œ„์™€ ๊ฐ™์ด ํŽ˜์ด์ง€๋ฅผ ์ด๋™ ํ•˜๊ฑฐ๋‚˜ ์•„๋ž˜์™€ ๊ฐ™์ด <form>์„ ์ด์šฉํ•ด์„œ ๊ฐ’์„ ๋„˜๊ธฐ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ์ด๋‹ค.

<form name="login_form">
    <input type="hidden" name="user_id" value="myid" />
    <input type="hidden" name="user_pwd" value="mypassword" />
    <input type="hidden" name="redirect_url" value="http://mysite.com/login/" />
    <input type="hidden" name="somevalue" value="blahblah" />
    ...
</form>
<script type="text/javascript">
f = document.forms.login_form;
f.action = "http://login.oursite.com/login/";
...
f.submit();
</script>


์‹ฌํ•œ ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์ด ์ „ํ˜€ ์˜๋ฏธ ์—†๋Š” ํผ์„ ์ด์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค.

<form method="post" name="sg_form" action="http://www.qubi.com/" target="_top">
</form>
<script> sg_form.submit(); //3</script>


์œ„์™€ ๊ฐ™์€ ํŽ˜์ด์ง€๋“ค์€ html ๋ฌธ๋ฒ•์ƒ ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š” ํŽ˜์ด์ง€ ๋“ค์ด๊ณ  ์ด ๋•Œ๋ฌธ์— ์ž‘๋™์ด ์•ˆ ๋  ์ˆ˜๋„ ์žˆ๋‹ค. <form>์—˜๋ฆฌ๋จผํŠธ๋‚˜ <script>์—˜๋ฆฌ๋จผํŠธ๋Š” ์ƒ์œ„์— <body>๋‚˜ <head>์—˜๋ฆฌ๋จผํŠธ๊ฐ€ ์žˆ์–ด์•ผ ํ•˜๋Š”๋ฐ ์œ„์™€ ๊ฐ™์€ ๊ฒฝ์šฐ ์ด๋Ÿฌํ•œ ์—˜๋ฆฌ๋จผํŠธ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— html๋กœ ํ•ด์„์ด ์•ˆ๋˜์–ด ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ž‘๋™ ๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ๊ฐ’์ด ๋„˜์–ด๊ฐ€์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  <form>์— submit <input>์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ submit์ด ์ผ์–ด๋‚˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค.

์ด์™€ ๊ฐ™์ด ํŽ˜์ด์ง€๋ฅผ ์ด๋™ํ•˜๊ฑฐ๋‚˜ ๊ฐ’์„ ๋„˜๊ธธ ํ•„์š”๊ฐ€ ์žˆ์„ ๋•Œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— ์˜์กดํ•ด์„œ ์ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋˜๋ฉด ํด๋ผ์ด์–ธํŠธ์˜ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ์„œ ๋™์ž‘์ด ์‹คํŒจํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Ÿฌํ•œ ์ฒ˜๋ฆฌ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์ฒ˜๋ฆฌ ํ•˜์ง€ ๋ง๊ณ  ์„œ๋ฒ„ ์ธก์—์„œ httpํ—ค๋” ์ •๋ณด๋ฅผ ์ด์šฉํ•ด์„œ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•œ๋‹ค.

์ด๋Ÿฌํ•œ ์ค‘๊ฐ„๊ณผ์ •์—์„œ์˜ ์ฒ˜๋ฆฌ๋ฅผ ์„œ๋ฒ„์ธก์—์„œ ๋ชจ๋‘ ์ฒ˜๋ฆฌ ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ๋ฐ”๋žŒ์ง ํ•˜์ง€๋งŒ ์–ด์ฉ” ์ˆ˜ ์—†์ด ์‚ฌ์šฉ์„ ํ•ด์•ผํ•  ๊ฒฝ์šฐ์—๋Š” - ๊ทธ๋Ÿด ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์ง€๋Š” ์•Š๊ฒ ์ง€๋งŒ ๊ธฐ์กด์˜ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด์„œ - DTD์„ ์–ธ์ด๋‚˜ <html> ๋ฃจํŠธ ์—˜๋ฆฌ๋จผํŠธ, <head>, <body>์™€ ๊ฐ™์ด ํ•„์ˆ˜ ์—˜๋ฆฌ๋จผํŠธ๋“ค์ด ์กด์žฌํ•˜๋Š” ์™„๊ฒฐ๋œ ํŽ˜์ด์ง€๋ฅผ ์‚ฌ์šฉ ํ•˜๋„๋ก ํ•˜๊ณ , ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋ฅผ ์œ„ํ•ด์„œ <form>์— submit๋ฒ„ํŠผ๋„ ์ œ๊ณต์„ ํ•˜๊ณ , ๊ฒฐ๊ณผ ๋ฉ”์„ธ์ง€๋„ alert์™ธ์— ์ผ๋ฐ˜ text์™€ <a>๋ฅผ ์ด์šฉํ•œ ๋งํฌ๋ฅผ ์ œ๊ณตํ•˜๋„๋ก ํ•ด์•ผ ํ•œ๋‹ค.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr" />
<title>Redirect</title>
</head>
<body>
<script type="text/javascript">
/*
 some processes...
*/
alert('์ด๋ž˜์ €๋ž˜ํ•œ ์ด์œ ๋กœ ๋‹ค์‹œ ๋Œ์•„ ๊ฐ‘๋‹ˆ๋‹ค.');
document.location.href="redirection.html";
</script>
<p><a href="redirection.html">์ด๋ž˜์ €๋ž˜ํ•œ ์ด์œ ๋กœ ๋‹ค์‹œ ๋Œ์•„ ๊ฐ‘๋‹ˆ๋‹ค.</a></p>
</body>
</html>


charset์ด ์—†๋Š” ๊ฒฝ์šฐ ๋ธŒ๋ผ์šฐ์ ธ์˜ ๊ธฐ๋ณธ ์„ค์ •์œผ๋กœ alert์ด ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ธŒ๋ผ์šฐ์ ธ์˜ ๊ธฐ๋ณธ ์„ค์ •์ด ko-kr์ด ์•„๋‹Œ ๊ฒฝ์šฐ ํ•œ๊ธ€์ด ๊นจ์ง€๊ฒŒ ๋œ๋‹ค. ๋ฌธ์„œ์˜ mime-type๋„ text/html์ธ์ง€ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค.


<form>์—์„œ์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‚ฌ์šฉ

์ผ๋ฐ˜์ ์œผ๋กœ <form>์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ฐ’์„ ์„œ๋ฒ„์ธก์— ์ „๋‹ฌํ•˜๋Š” ์—ญํ• ์„ ํ•˜๊ณ  ๊ทธ ์ „๋‹ฌ์€ <form>์˜ submit ๊ธฐ๋Šฅ์„ ํ†ตํ•ด์„œ ์ด๋ฃจ์–ด ์ง„๋‹ค. ์ด๋Ÿฌํ•œ ํผ์„ ๊ตฌํ˜„ ํ•  ๋•Œ์— ์ผ๋ฐ˜์ ์œผ๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.

submit

ํผ์€ ๊ทธ ์ž์ฒด์ ์œผ๋กœ ๊ฐ’์„ ๋ณด๋‚ด๋Š” ์„œ๋ฐ‹๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค. <input type="submit" />์ด๋‚˜ <input type="image" />์ด ์„œ๋ฐ‹๊ธฐ๋Šฅ์„ ํ•˜๋Š” ์ปจํŠธ๋กค์ธ๋ฐ ํผ์˜ ๊ฐ’ ์œ ํšจ์„ฑ ์ฒดํฌ๋ฅผ ํ•˜๋Š” ๊ณผ์ •์—์„œ ์ด๋Ÿฌํ•œ ํผ์˜ ์ž์ฒด์ ์ธ ์„œ๋ฐ‹๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜์ง€ ์•Š๊ณ  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ํผ ์„œ๋ฐ‹์„ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.

<script type="text/javascript">
function submitForm() {
    loginForm.submit();
}
</script>
<form id="loginForm" name="loginForm" action="">
    User Id <input type="text" name="loginId">
    User Password <input type="password" name="loginPassword"><br>
    <img src="login.gif" onclick="submitForm()">
</form>


์œ„์™€ ๊ฐ™์€ ๊ฒฝ์šฐ ํผ์— ์„œ๋ฐ‹๊ธฐ๋Šฅ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ธŒ๋ผ์šฐ์ ธ์— ๋”ฐ๋ผ์„œ script๋กœ ์„œ๋ฐ‹์ด ์•ˆ๋˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๊ณ  ์„œ๋ฐ‹ ๋Œ€์‹ ์— ์ด๋ฏธ์ง€๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์˜๋ฏธ์ ์œผ๋กœ๋„ ๋งž์ง€ ์•Š๊ฒŒ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ํผ์„ ์ œ์ž‘ํ•  ๋•Œ์—๋Š” ๋ฐ˜๋“œ์‹œ ์„œ๋ฐ‹๊ธฐ๋Šฅ์„ <input>์„ ์ด์šฉํ•ด์„œ ์ œ๊ณตํ•ด์•ผ ํ•œ๋‹ค.

<form id="loginForm" name="loginForm" action="">
    <p>
        <label for="loginId">User Id</label>
        <input type="text" id="loginId" name="loginId" /><br />
        <label for="loginPassword">User Password</label>
        <input type="password" id="loginPassword" name="loginPassword" />
    </p>
    <p>
        <input type="image" src="login.gif" alt="Login" />
    </p>
</form>


๋งŽ์€ ๊ฒฝ์šฐ <html>์ œ์ž‘ ๊ณผ์ •์—์„œ ์„œ๋ฐ‹์„ <img>๋กœ ๋„ฃ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋Š”๋ฐ ์ด ๊ฒฝ์šฐ ์ด๋ฅผ ๊ทธ๋ƒฅ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋˜๊ณ  ์ ์ ˆํ•œ <input>์œผ๋กœ ๋ฐ”๊พธ์–ด์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

validation

ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•œ ์œ ํšจ์„ฑ ๊ฒ€์ฆ์€ <form>์˜ ์„œ๋ฐ‹ ์ด๋ฒคํŠธ๋ฅผ ์บ์น˜ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๊ณ  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ํผ์„ ์„œ๋ฐ‹ํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋œ๋‹ค.

<script type="text/javascript">
function submitForm() {
    if (!loginForm.loginId.value) {
        alert("์•„์ด๋””๋ฅผ ๋„ฃ์–ด์ฃผ์„ธ์š”.");
        loginForm.loginId.focus();
    } else if (!loginForm.loginPassword.value) {
        alert("๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋„ฃ์–ด์ฃผ์„ธ์š”.");
        loginForm.loginPassword.focus();
    } else {
        loginForm.submit();
    }
}
</script>
<form id="loginForm" name="loginForm" action="">
    ์•„์ด๋”” <input type="text" name="loginId">
    ๋น„๋ฐ€๋ฒˆํ˜ธ <input type="password" name="loginPassword"><br>
    <img src="login.gif" onclick="submitForm()">
</form>


์œ„์™€ ๊ฐ™์€ ๊ฒฝ์šฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋งŒ์„ ์ด์šฉํ•ด์„œ ํผ์„ ์„œ๋ฐ‹ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์—†์ด HTML๋งŒ์œผ๋กœ๋Š” ๊ธฐ๋Šฅ์ด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค.

<script type="text/javascript">
function submitForm(formEl) {
    //TrimAll(formEl);

    var errorMessage = null;
    var objFocus = null;

    if (formEl.loginId.value.length == 0) {
        errorMessage = "์•„์ด๋””๋ฅผ ๋„ฃ์–ด์ฃผ์„ธ์š”.";
        objFocus = formEl.loginId;
    } else if (formEl.loginPassword.value.length == 0) {
        errorMessage = "๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋„ฃ์–ด์ฃผ์„ธ์š”.";
        objFocus = formEl.loginPassword;
    }

    if(errorMessage != null) {
        alert(errorMessage);
        objFocus.focus();
        return false;
    }
    return true;
}
</script>

<form id="loginForm" name="loginForm" action="" onsubmit="return submitForm(this)">
    <label for="loginId">์•„์ด๋””</label> <input type="text" id="loginId" name="loginId" />
    <label for="loginPassword">๋น„๋ฐ€๋ฒˆํ˜ธ</label> <input type="password" id="loginPassword" name="loginPassword" /><br />
    <input type="image" src="login.gif" alt="Login" />
</form>


์ด์™€ ๊ฐ™์ด onsubmit ์ด๋ฒคํŠธ๋ฅผ ์ด์šฉํ•ด์„œ ํผ์˜ ์œ ํšจ์„ฑ์„ ์ฒดํฌํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ true๋‚˜ false๋กœ ๋ณด๋‚ด์คŒ์œผ๋กœ์จ ํผ์ด ์Šคํฌ๋ฆฝํŠธ์— ๋”ฐ๋ผ์„œ ์„œ๋ฐ‹์„ ์ง„ํ–‰ํ•˜๊ฑฐ๋‚˜ ๋ฉˆ์ถœ ์ˆ˜ ์žˆ๊ณ , onsubmit ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•„๋„ ์‚ฌ์šฉ์ž๋Š” ํผ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ ‘๊ทผ์„ฑ์ด ๋†’์•„์ง€๊ฒŒ ๋œ๋‹ค.


๊ฒŒ์‹œํŒ ๋“ฑ์—์„œ ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ํ•˜๋Š” ๊ฒฝ์šฐ

๊ฒŒ์‹œํŒ์—์„œ ํŽ˜์ด์ง€์˜ ์ด๋™์„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋งŒ์œผ๋กœ ํ•˜๋Š” ๊ฒƒ์„ ๋งŽ์ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด ์‚ฌ์šฉ์ž ์ธํ’‹์ด ์—†๋Š” ๋นˆ <form>์„ ํ•˜๋‚˜ ๋งŒ๋“ค๊ณ  ์ด๊ฒƒ๊ณผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•ด์„œ ๊ธ€์„ ์ฝ๊ฑฐ๋‚˜ ํŽ˜์ด์ง€๋ฅผ ์ด๋™ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

<form method="post" name="vars">
    <input type="hidden" name="articleId" value="23" />
    <input type="hidden" name="page" value="3" />
    <input type="hidden" name="keysord" value="" />
    <input type="hidden" name="searchType" value="" />
    <!-- ๋“ฑ๋“ฑ -->
</form>

...

<a href="javascript:ArticleRead()">๊ธ€์ฝ๊ธฐ</a>
<a href="javascript:GoList()">๋ฆฌ์ŠคํŠธ ๋ณด๊ธฐ</a>


url์ด ๊ฐ„๋‹จํ•ด ์ง€๊ณ  ๋‹ค๋ฃจ๊ธฐ ์‰ฝ๋‹ค๋Š” ์ด์œ ๋กœ ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ฐœ๋ฐœ์„ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์€ ๊ฒƒ ๊ฐ™์€๋ฐ ์ ˆ๋Œ€๋กœ ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ๋˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

์šฐ์„  ์œ„์™€ ๊ฐ™์ด ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•ด์„œ ๊ตฌํ˜„์„ ํ•˜๊ฒŒ ๋˜๋ฉด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์˜ค๋ฅ˜๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ํ•ธ๋“œํฐ๊ณผ ๊ฐ™์ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ ํ•˜์ง€ ์•Š๋Š” ์ƒํ™ฉ์—์„œ๋Š” ์ ‘๊ทผ์„ ํ•  ์ˆ˜ ์—†๊ฒŒ ๋œ๋‹ค. ๋˜ํ•œ ๋ชจ๋“  ๋ณ€์ˆ˜๋ฅผ post๋ฅผ ํ†ตํ•ด์„œ ์ „๋‹ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— url์— ํ‘œ์‹œ๊ฐ€ ๋˜์ง€ ์•Š๊ณ  ํ•ด๋‹น ํŽ˜์ด์ง€๋ฅผ ๋”ฐ๋กœ ๋ถ๋งˆํฌ ํ•œ๋‹ค๋“ ์ง€ ์ €์žฅ์„ ํ•  ์ˆ˜๊ฐ€ ์—†๊ฒŒ๋œ๋‹ค. ๊ฒŒ์‹œํŒ์˜ ๊ฒฝ์šฐ ํ•ด๋‹น ๊ฒŒ์‹œ๋ฌผ๋กœ์˜ ์ ‘๊ทผ์„ ์‰ฝ๊ฒŒ ํ•ด ์ฃผ์–ด์•ผ ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ์ž๊ฐ€ url์„ ์•Œ ์ˆ˜ ์—†๊ฒŒ ํ•จ์œผ๋กœ์จ ์ ‘๊ทผ์„ ์›์ฒœ์ ์œผ๋กœ ๋ง‰๊ฒŒ ๋œ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•˜์ง€ ์•Š๊ณ ๋„ <a>์™€ url๋งŒ์œผ๋กœ๋„ ์ž‘๋™ ๊ฐ€๋Šฅํ•œ ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค๊ณ  QueryString์„ ํšจ์œจ์ ์œผ๋กœ ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ์ƒ‰ํ•˜์—ฌ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์ด๋‹ค.


๋งˆ์น˜๋ฉฐ

๋ณธ์ธ์ด ์›น์‚ฌ์ดํŠธ ๊ฐœ๋ฐœ์„ ํ•˜๋ฉด์„œ ์ ‘ํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ๋ช‡๋ช‡ ์ž˜๋ชป๋œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‚ฌ์šฉ ์˜ˆ๋ฅผ ์ ์–ด ๋ณด์•˜๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋†€๋ผ์šด ๊ฒƒ์€ ์ด๋Ÿฌํ•œ ๊ฐœ๋ฐœ ๋ฐฉ์‹์„ ์ดˆ๋ณด๋ถ€ํ„ฐ ์–ด๋Š์ •๋„ ๊ฒฝ๋ ฅ์ด ๋œ ๊ฐœ๋ฐœ์ž๋“ค ๊นŒ์ง€ ์•„๋ฌด๋Ÿฐ ๊ณ ๋ฏผ ์—†์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ฑ…์ด ์ž˜๋ชป๋œ ๊ฒƒ์ธ์ง€ ๊ต์œก์ด ์ž˜๋ชป ๋œ ๊ฒƒ์ธ์ง€ ์ •ํ™•ํžˆ ๊ทผ์›์„ ์•Œ ์ˆ˜๋Š” ์—†์ง€๋งŒ ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋“ค์ด ์›น์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ธฐ๋ณธ์ ์€ ํŠน์„ฑ์„ ๋ฌด์‹œํ•œ์ฑ„ ์ž˜๋ชป๋œ ๋ฐฉ๋ฒ•์„ ์ด์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ์„ ํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ์‚ฌ์‹ค์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋˜ ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž๋“ค์€ HTML์„ ์ž˜ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ๊ฐœ๋ฐœ ๋ฐฉ์‹์„ ์•„๋ฌด ๊ณ ๋ฏผ ์—†์ด ๊ทธ๋ƒฅ ๋ฐ›์•„๋“ค์ด๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ์‚ฌ์‹ค์ด๋‹ค.

๋ธŒ๋ผ์šฐ์ € ์ ‘๊ทผ์„ฑ์„ ๊ฐ€์žฅ ํฌ๊ฒŒ ๋‚ฎ์ถ”๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ ์ด ์ž˜๋ชป๋œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์‚ฌ์šฉ์ด๋‹ค. ๋ถ€๋”” ์กฐ๊ธˆ์ด๋ผ๋„ ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋งํฌ์— ๊ธฐ์ดˆํ•œ ์›น์˜ ํŠน์„ฑ์„ ์ดํ•ดํ•˜๊ณ  ์ ‘๊ทผ์„ฑ ๋†’์€ ์›น์‚ฌ์ดํŠธ, ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ• ํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ผ๋Š” ๋ฐ”์ด๋‹ค.

๋‹ค์šด๋กœ๋“œ : accessible-javascript.pdf(pdf 225KB)
๋ฐ˜์‘ํ˜•

์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•
์ฒ˜์Œ ๋งŒ๋‚œ ๋‚  : ย  ๋…„ ย  ์›” ย  ์ผ

ย  ย  ์ผ

๋งŒ๋‚œ ํ›„๋กœ ์ผ์งธ ๋˜๋Š” ๋‚ ์€...ย  ย 

๋…„ย  ์›”ย  ์ผย ย  ์š”์ผ์ž…๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•

+ Recent posts