在網頁表單的<textarea>中,我們有時候需要將文本插入到光標所在的地方,或是替換掉選區內的文字。這時候,用普通的.value+="text"就無能為力了。下面這段測試代碼可以解決這個問題,供大家參考:function getActiveText() {
obj.currPos = document.selection.createRange().duplicate()
//對象自定義屬性currPos為文檔中當前激活選中區被建立的TextRange對象的副本
}
function AddText(str) {
if (obj.currPos)
//如果對象obj存在屬性currPos
obj.currPos.text=str
//設置對象obj當前激活選中區被建立的TextRange對象的文本為參數str的值
//實現在光標位置插入參數str的值或者用參數str的值來替換選中區文本
else obj.value+=str
//如果對象obj的自定義屬性currPos不存在
//直接把參數str的值添加到對象obj的值後面
}
</script>
<textarea id="obj" onfocus="getActiveText()" onchange="getActiveText()"></textarea>
<button onClick="AddText('中文')">AddText</button>
<button onClick="AddText('English')">AddText</button>