[問題] 取得TEXTAREA中選取的文字
可以請問一下為什麼以下代碼中的
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
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章