javascript獲取textare光標位置顯示div,及插入内容(IE ,FIREFOX)
2009-05-31 11:21
330 查看
這個是查了很多資料自己總結出來的,還有一些不足,希望高手可以給以指導,謝謝!
$F
$T
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> <title>无标题文档</title> <mce:script type="text/javascript"><!-- var objRange = null; function keydown(myEvent){ var m=document.getElementById("ctl00_ContentTripMaster_divSign"); var cursorTop = 0; var cursorLeft = 0; if(myEvent.ctrlKey && myEvent.keyCode == 188){ if(window.getSelection){ var arrPos = getposion(); var obj = document.getElementById("ctl00_ContentTripMaster_txtText"); if (obj.selectionStart != undefined && obj.selectionEnd != undefined){ var subtxt = obj.value.substr(0,obj.selectionEnd); var start = subtxt.lastIndexOf("/n"); if (start == -1 ) start =0; var end = getLength(subtxt.substr(start,obj.selectionEnd)); var count = getEnterNum(subtxt); cursorTop = parseInt(arrPos[0] ,10) + (count+1)*15; cursorLeft = parseInt(arrPos[1],10) + end*8; } }else{ objRange = document.selection.createRange(); cursorTop = parseInt(objRange.offsetTop,10) + 5; cursorLeft = parseInt(objRange.offsetLeft,10) + 10; } m.style.left = cursorLeft + "px"; m.style.top = cursorTop +"px"; m.style.display = ''; } else{ m.style.display = "none" } } function getposion() { var txtobj = document.getElementById("ctl00_ContentTripMaster_txtText"); var pos = new Array(); var t=txtobj.offsetTop; var l=txtobj.offsetLeft; while(txtobj=txtobj.offsetParent){ t+=txtobj.offsetTop; l+=txtobj.offsetLeft; } pos[0] = t; pos[1] = l; return pos;} function getLength(str){ var len = 0; for(var i=0;;i++){ if(!str.charCodeAt(i)) break; if(str.charCodeAt(i)>255) len += 2; else len +=1; } return len; } function getEnterNum(str){var count =0; for (var i = 0;i < str.length;i++){ if(str.charAt(i) == "/n"){ count = count +1; } } return count; } function listSelect(){var objlist = document.getElementById("ctl00_ContentTripMaster_lstBox"); var objtxt = document.getElementById("ctl00_ContentTripMaster_txtText"); var objdiv = document.getElementById("ctl00_ContentTripMaster_divSign"); if(window.getSelection){ if (objtxt.selectionStart != undefined && objtxt.selectionEnd != undefined){ var txtBef = objtxt.value.substr(0,objtxt.selectionEnd); var txtAft =objtxt.value.substr(objtxt.selectionEnd); objtxt.value = txtBef + objlist.options[objlist.selectedIndex].text + txtAft ; } } else objRange.text = objlist.options[objlist.selectedIndex].text; objdiv.style.display = "none"; objtxt.focus(); } // --></mce:script> </head> <body> <div style="margin-top: 0px; float: left; width: 100px;"> <span id="ctl00_ContentTripMaster_Label8" >本文</span> </div> <div style="margin-top: 0px; float: left; width: 440px;"> <textarea name="ctl00$ContentTripMaster$txtText" rows="2" cols="20" id="ctl00_ContentTripMaster_txtText" onkeydown="keydown(event);" style="font-size:10pt;height:200px;width:430px;">
$F
$T
相关文章推荐
- JS实现iframe编辑器光标位置插入内容的方法(兼容IE和Firefox)
- iframe编辑器光标位置插入内容方法,兼容IE和Firefox
- JS实现iframe编辑器光标位置插入内容的方法(兼容IE和Firefox)
- 可编辑div在光标位置插入指定内容
- textbox 在光标位置插入字符功能的js实现(兼容ie,firefox)
- javascript获取textarea光标选择位置和内容方法(IE, Firefox)
- textbox 在光标位置插入字符功能的js实现(兼容ie,firefox)
- JS在可编辑的div中的光标位置插入内容或表情
- JS在可编辑的div中的光标位置插入内容的方法
- javascript获取textarea光标位置,内容方法(IE, Firefox)
- 工作笔记---jQuery在可编辑的div光标处插入内容 兼容IE,火狐,谷歌
- javascript获取textarea光标选择位置和内容方法(IE, Firefox)
- 获取textarea光标选择位置和内容方法(IE, Firefox)
- javascript获取textarea光标位置,内容方法(IE, Firefox)
- JS在可编辑的div中的光标位置插入内容或表情
- 可编辑div中指定位置插入内容的方法
- javascript获取textarea光标选择位置和内容方法(IE, Firefox)
- javascript获取textarea光标选择位置和内容方法(IE, Firefox)
- JS在可编辑的div中的光标位置插入内容的方法
- Javascript 设置 文本框 的内容 的焦点 位置(兼容IE FIrefox Chrome)-摘自网络