JavaScript記錄光標(biāo)在編輯器中位置的實(shí)現(xiàn)方法
本文實(shí)例講述了JavaScript記錄光標(biāo)在編輯器中位置的實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無(wú)標(biāo)題文檔</title>
</head>
<body>
<script type="text/javascript">
function $(ele){return document.getElementById(ele)}
//記錄編輯器中的位置
var selection_start;
var selection_end;
function savePos(textBox){
var start=0;
var end=0;
if(typeof(textBox.selectionStart) == "number"){ // not ie
//alert(typeof(textBox.selectionStart) );
start = textBox.selectionStart;
end = textBox.selectionEnd;
}
else if(document.selection){
var range = document.selection.createRange();
if(range.parentElement().id == textBox.id){
var range_all = document.body.createTextRange();
range_all.moveToElementText(textBox);
for (start=0; range_all.compareEndPoints("StartToStart", range) < 0; start++)
range_all.moveStart('character', 1);
for (var i = 0; i <= start; i ++){
if (textBox.value.charAt(i) == '/n')
start++;
}
var range_all = document.body.createTextRange();
range_all.moveToElementText(textBox);
for (end = 0; range_all.compareEndPoints('StartToEnd', range) < 0; end ++)
range_all.moveStart('character', 1);
for (var i = 0; i <= end; i ++){
if (textBox.value.charAt(i) == '/n')
end ++;
}
}
}
selection_start = start;
selection_end = end;
}
</script>
<form action="" id="test">
<textarea id="t" onfocus="savePos(this);$('log').value=selection_start" onkeydown="savePos(this);$('log').value=selection_start" onmousedown="savePos(this);$('log').value=selection_start" onmouseup="savePos(this);$('log').value=selection_start" >
</textarea>
<input type="text" id="log" />
</form>
</body>
</html>
更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript動(dòng)畫(huà)特效與技巧匯總》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
- Javascript實(shí)現(xiàn)獲取及設(shè)置光標(biāo)位置的方法
- JS在可編輯的div中的光標(biāo)位置插入內(nèi)容的方法
- javascript控制在光標(biāo)位置插入文字適合表情的插入
- js獲取光標(biāo)位置和設(shè)置文本框光標(biāo)位置示例代碼
- JS在TextArea光標(biāo)位置插入文字并實(shí)現(xiàn)移動(dòng)光標(biāo)到文字末尾
- JavaScript 獲取/設(shè)置光標(biāo)位置,兼容Input&&TextArea
- textbox 在光標(biāo)位置插入字符功能的js實(shí)現(xiàn)(兼容ie,firefox)
- 用javascript獲取當(dāng)頁(yè)面上鼠標(biāo)光標(biāo)位置和觸發(fā)事件的對(duì)象的代碼
- 用javascript獲取textarea中的光標(biāo)位置
相關(guān)文章
原生js實(shí)現(xiàn)表格循環(huán)滾動(dòng)
這篇文章主要為大家詳細(xì)介紹了原生js實(shí)現(xiàn)表格循環(huán)滾動(dòng),每次滾動(dòng)一行停頓,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11
解決js ajax同步請(qǐng)求造成瀏覽器假死的問(wèn)題
下面小編就為大家分享一篇解決js ajax同步請(qǐng)求造成瀏覽器假死的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01
解析JavaScript實(shí)現(xiàn)DDoS攻擊原理與保護(hù)措施
本文主要對(duì)JavaScript實(shí)現(xiàn)DDoS攻擊原理與保護(hù)措施進(jìn)行介紹,具有一定的參考價(jià)值,需要的朋友一起來(lái)看下吧2016-12-12
使用Visual?Studio?2022開(kāi)發(fā)前端的詳細(xì)教程
這篇文章主要介紹了使用Visual?Studio?2022開(kāi)發(fā)前端,在瀏覽器中可以使用CDN源引用需要的客戶端庫(kù),可如果在企業(yè)內(nèi)網(wǎng)使用,無(wú)法訪問(wèn)CDN源時(shí),需要將客戶端庫(kù)下載到本地使用,需要的朋友可以參考下2022-05-05
JavaScript 中的12種循環(huán)遍歷方法【總結(jié)】
本文給大家總結(jié)了12種JavaScript 中的1循環(huán)遍歷方法,每種方法通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-05-05

