[問題] 取得TEXTAREA中選取的文字

看板Ajax作者 (九月二號)時間15年前 (2010/01/15 01:19), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
可以請問一下為什麼以下代碼中的 var sel = document.selection.createRange(); 無法取得選取的文字,也就是sel.text都是空的 以下的代碼是我自己寫BBCODE中的[size=X]TEST[/size] 點選大小,會叫出e_popup_fontsize_menu這個DIV 然後有1~7讓使用者選,JAVASCRIPT再做出[size=X]TEST[/size] 在MESSAE這個textarea中 FIREFOX可以正常動作,但是IE不行 IE會變成[size=X][/size]TEST,也就是根本沒有讀到選取部份的文字 推測是不是我點選"大小",去啟動popup這function時focus lost掉了? 求高手解惑,感謝 <html> <head> <style type="text/css"> <!-- .popupmenu_fontsize_menu { position: absolute; } --> </style> <script type="text/javascript"> <!-- function popup() { var pop_y=document.documentElement.scrollTop+20; var pop_x=document.documentElement.scrollLeft; document.getElementById('e_popup_fontsize_menu').style.left = pop_x; document.getElementById('e_popup_fontsize_menu').style.top = pop_y; document.getElementById('e_popup_fontsize_menu').style.display=''; } function doAddTags(obj,size) { textarea = document.getElementById(obj); // Code for IE if (document.selection) { textarea.focus(); var sel = document.selection.createRange(); //alert(sel.text); sel.text = "[size="+size+"]" + sel.text + "[/size]"; document.getElementById('e_popup_fontsize_menu').style.display='none'; } else { // Code for Mozilla Firefox var len = textarea.value.length; var start = textarea.selectionStart; var end = textarea.selectionEnd; var scrollTop = textarea.scrollTop; var scrollLeft = textarea.scrollLeft; var sel = textarea.value.substring(start, end); //alert(sel); var rep = "[size="+size+"]"+ sel + "[/size]"; textarea.value = textarea.value.substring(0,start) + rep + textarea.value.substring(end,len); textarea.scrollTop = scrollTop; textarea.scrollLeft = scrollLeft; document.getElementById('e_popup_fontsize_menu').style.display='none'; } } //--> </script> </head> <body> <a id="e_popup_fontsize" title="大小" onclick="popup()">大小</a> <textarea id="MESSAGE" class="ed" rows="10" cols="180" wrap="off" name="MESSAGE"></textarea><br> <div class="popupmenu_fontsize_menu" id="e_popup_fontsize_menu" style="display:none"><BR> <ul unselectable="on"><li onclick="doAddTags('MESSAGE',1)" unselectable="on"><font size="1" unselectable="on">1</font></li><li onclick="doAddTags('MESSAGE', 2)" unselectable="on"><font size="2" unselectable="on">2</font></li><li onclick="doAddTags('MESSAGE', 3)" unselectable="on"><font size="3" unselectable="on">3</font></li><li onclick="doAddTags('MESSAGE', 4)" unselectable="on"><font size="4" unselectable="on">4</font></li><li onclick="doAddTags('MESSAGE', 5)" unselectable="on"><font size="5" unselectable="on">5</font></li><li onclick="doAddTags('MESSAGE', 6)" unselectable="on"><font size="6" unselectable="on">6</font></li><li onclick="doAddTags('MESSAGE', 7)" unselectable="on"><font size="7" unselectable="on">7</font></li></ul></div> </body> </html> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.137.190.27
文章代碼(AID): #1BJr8JRv (Ajax)
文章代碼(AID): #1BJr8JRv (Ajax)