JavaScript È°¿ëÆÁ
2008.05.30 / 19:18

TextAreaÀÇ ¿øÇÏ´Â À§Ä¡¿¡ ÅؽºÆ®¸¦ ÀÔ·ÂÇÏ´Â ¹æ¹ý

À¯ÀÌ°ø»ç
Ãßõ ¼ö 167
Á¦¸ñ¾øÀ½


 TextAreaÀÇ ¿øÇÏ´Â À§Ä¡¿¡ ¿øÇÏ´Â ÅؽºÆ®¸¦ ÀÔ·ÂÇÒ ¼ö ÀÖÀ»±î? ÀÎÅÍ³Ý ÀͽºÇ÷η¯ 4 ÀÌ»óÀ» »ç¿ëÇÏ°í ÀÖ´Ù¸é ±×¸® ¾î·Á¿î ÀÏÀÌ ¾Æ´Ï´Ù. °£´ÜÇÑ ¿¹Á¦¸¦ ¸ÕÀú »ìÆì º¸ÀÚ.

¾Æ·¡ TextArea¿¡¼­ ´ëÄ¡½ÃÅ°°í ½ÍÀº ¹®ÀÚ¿­À» ¼±ÅÃÇϰųª »ðÀÔ½ÃÅ°°í ½ÍÀº À§Ä¡¿¡ Ä¿¼­¸¦ À§Ä¡½ÃŲ ÈÄ »ðÀÔ½Ãų ÅؽºÆ®¸¦ ÀûÀýÈ÷ º¯°æÇÑ ´ÙÀ½ "ÅؽºÆ® »ðÀÔ" ¹öÆ°À» Ŭ¸¯ÇØ º¸±â ¹Ù¶õ´Ù.



À§ °á°ú¿¡ ´ëÇÑ ¼Ò½º ÄÚµå´Â ´ÙÀ½°ú °°´Ù.

<HTML>
<HEAD>
<SCRIPT>
function saveCurrentPos (objTextArea) {
   if (objTextArea.createTextRange)
         objTextArea.currentPos = document.selection.createRange().duplicate();
}
function insertText (objTextArea, text) {
   if (objTextArea.createTextRange && objTextArea.currentPos) {
         var currentPos = objTextArea.currentPos;
         currentPos.text =
           currentPos.text.charAt(currentPos.text.length - 1) == ' ' ?
             text + ' ' : text;
   }
   else
         objTextArea.value  = text;
}
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="myForm">
<TEXTAREA NAME="myTextArea" ROWS="5" COLS="80" WRAP="soft"
       ONSELECT="saveCurrentPos(this)"
       ONCLICK="saveCurrentPos(this)"
       ONKEYUP="saveCurrentPos(this)"
>
eºñÁî´Ï½º ¹× IT Àü¹®°¡¸¦ À§ÇÑ Áö½Ä ¹Ìµð¾î,
ÄÚ¸®¾ÆÀÎÅͳݴåÄÄ¿¡ ¿À½Å °ÍÀ» ȯ¿µÇÕ´Ï´Ù!!
</TEXTAREA>
<BR>
<INPUT TYPE="text" NAME="myText" SIZE="80" VALUE="korea.internet.com">
<BR>
<INPUT TYPE="button" VALUE="ÅؽºÆ® »ðÀÔ"
            ONCLICK="insertText(this.form.myTextArea, this.form.myText.value)"
>
</FORM>
</BODY>
</HTML>

À§ÀÇ ¼Ò½ºÄڵ带 º¸¸é ¾Ë°ÚÁö¸¸ TextArea¿¡ Ä¿¼­¸¦ À§Ä¡½ÃÅ°°Å³ª ¹®ÀÚ¿­À» ¼±ÅÃÇϸé ÇØ´ç À§Ä¡ ¶Ç´Â ¼±ÅÃÇÑ ¹®ÀÚ¿­À» ÀúÀåÇϱâ À§ÇØ saveCurrentPos¶õ ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù. ÀÌ ÇÔ¼ö¿¡¼­ document.selection.createRange().duplicate(); ºÎºÐÀÌ ÇÙ½ÉÀÌ´Ù. duplicate()Àº TextRange°´Ã¼ÀÇ º¹»çº»À» ¸¸µé¾î ÁØ´Ù. Áï, »ç¿ëÀÚ°¡ ¼±ÅÃÇÑ À§Ä¡ÀÇ ¹®ÀÚ¿­¿¡ ÇØ´çÇÏ´Â TextRange °´Ã¼¸¦ ¸¸µé¾î ÁØ´Ù. ¸¸ÀÏ TextAreaÀÇ ¹®ÀÚ¿­À» ¼±ÅÃÇÏÁö ¾ÊÀº ä Ä¿¼­¸¸ ÀûÀýÇÑ À§Ä¡¿¡ À§Ä¡½ÃÄ×´Ù¸é duplicateÀº ºó ¹®ÀÚ¿­ÀÇ TextRange °´Ã¼¸¦ ¹ÝȯÇÒ °ÍÀÌ°í TextAreaÀÇ ÀûÀýÇÑ ¹®ÀÚ¿­À» ¼±ÅÃÇÑ ´ÙÀ½ duplicateÀ» È£ÃâÇß´Ù¸é ÇØ´ç ¹®ÀÚ¿­À» °¡Áö°í ÀÖ´Â TextRange°´Ã¼¸¦ ¹ÝȯÇÒ °ÍÀÌ´Ù. ÀÌ·¸°Ô Çؼ­ »ý¼ºÇÑ º¹»çº» °´Ã¼(¿©±â¼­´Â objTextArea.currentPos¿¡ ÀúÀå)ÀÇ text °ªÀ» »ç¿ëÀÚ°¡ ÀÔ·ÂÇÑ ¹®ÀÚ¿­(this.form.myText.value)·Î ´ëÄ¡½ÃÅ°¸é ¸ðµç°Ô ³¡³­´Ù.

´Ù½Ã Çѹø Á¤¸®Çϸé, TextAreaÀÇ Àüü ¹®ÀÚ¿­ Áß »ç¿ëÀÚ°¡ Ä¿¼­¸¦ À§Ä¡ ½ÃŲ °÷ÀÇ Æ¯Á¤ ¹®ÀÚ¿­(ºó ¹®ÀÚ¿­ÀÏ ¼öµµ ÀÖ°í »ç¿ëÀÚ°¡ ¼±ÅÃÇÑ ¹®ÀÚ¿­ÀÏ ¼öµµ ÀÖ°í)À» º°µµÀÇ °´Ã¼·Î ¶¼¾î³½ ÈÄ(duplicate ¸Þ½îµå »ç¿ë) ¶¼¾î³½ °´Ã¼ÀÇ text ¼Ó¼º(TextRange°´Ã¼ÀÇ ¼Ó¼ºÀÓ)À» »ç¿ëÀÚ°¡ ÀÔ·ÂÇÑ ¹®ÀÚ¿­·Î ´ëÄ¡½ÃÅ°¸é ÀÚµ¿À¸·Î TextAreaÀÇ ¹®ÀÚ¿­¿¡ ¹Ý¿µÀÌ µÇ´Â °ÍÀÌ´Ù.

Á¶±Ý º¹ÀâÇÒ ¼öµµ ÀÖÁö¸¸ Àß »ý°¢ÇÏ¸é ±× ¿ø¸®¸¦ ±ú´ÞÀ» ¼ö ÀÖÀ» °ÍÀÌ´Ù.