亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JS在可編輯的div中的光標位置插入內容的方法

2019-11-20 13:53:57
字體:
來源:轉載
供稿:網友

本文實例講述了js實現在可編輯div中指定位置插入內容的方法,就像我們使用的編輯器一樣,分享給大家供大家參考。具體實現方法如下:

首先要讓DIV啟用編輯模式

復制代碼 代碼如下:
<div contenteditable=true id="divTest"></div>

通過設定contenteditable=true開啟div的編輯模式.這樣DIV就可以跟文本框一樣輸入內容了。
不扯話題了。下面說怎么獲取或設置光標位置.

2個步驟:

① 獲取DIV中的光標位置
② 改變光標位置

復制代碼 代碼如下:
var cursor = 0; // 光標位置 
document.onselectionchange = function () {
var range = document.selection.createRange();
var srcele = range.parentElement();//獲取到當前元素
var copy = document.body.createTextRange();
copy.moveToElementText(srcele);
for (cursor = 0; copy.compareEndPoints("StartToStart", range) < 0; cursor++) {
 copy.moveStart("character", 1);//改變光標位置,實際上我們是在記錄cursor的數量.
}
}

給document綁定光標變化事件。用來記錄光標位置.
這樣就可以拿到DIV的光標位置了.
復制代碼 代碼如下:
function moveEnd(obj) {
lyTXT1.focus();
var r = document.selection.createRange();
//因為這里死從當前光標開始移動的(好像文本框的是從0算起.)所以我們需要拿到當前光標位置,然后就可以計算出要移動多少位了,這樣就可以把光標移動到想要的位置了
r.moveStart('character', lyTXT1.innerText.length - cursor);
r.collapse(true);
r.select();
}

通過上面的我們就可以將DIV中的光標移動到最后面了
一個完整的實例
復制代碼 代碼如下:
<button type="button" onclick="document.getElementById('test').focus(); insertHtmlAtCaret('<b>INSERTED</b>');">插入字符</button>
<div contentEditable="true" style="height:50px; border:2px solid red;" id="test"> </div>
 
function insertHtmlAtCaret(html) {
var sel, range;
if (window.getSelection) {
// IE9 and non-IE
sel = window.getSelection();
if (sel.getRangeAt && sel.rangeCount) {
range = sel.getRangeAt(0);
range.deleteContents();
// Range.createContextualFragment() would be useful here but is
// non-standard and not supported in all browsers (IE9, for one)
var el = document.createElement("div");
el.innerHTML = html;
var frag = document.createDocumentFragment(), node, lastNode;
while ( (node = el.firstChild) ) {
lastNode = frag.appendChild(node);
}
range.insertNode(frag);
// Preserve the selection
if (lastNode) {
range = range.cloneRange();
range.setStartAfter(lastNode);
range.collapse(true);
sel.removeAllRanges();
sel.addRange(range);
}
}
} else if (document.selection && document.selection.type != "Control") {
// IE < 9
document.selection.createRange().pasteHTML(html);
}
}

再看一個基于jquery的實例

復制代碼 代碼如下:
<!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 content="text/html; charset=utf-8" http-equiv="Content-Type">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<title>contenteditable</title>
<style>
*{
 margin:0;padding:0;
}
.im-message-area{
 width:98%;
 padding:2px;
 height:75px;
 border:#000 solid 1px;
 background:#fff;
 font:12px/20px arial,"5b8b4f53";
 word-wrap:break-word;
 overflow-y:auto;
 line-height:1;
}
.ul{display:none;}
.ul li{
 background-color:#CCC;
 width:50px;
}
</style>
<script language="javascript" type="text/javascript">
function inimage(text){
 var obj= $(".im-message-area")[0];
 var range, node;
 if(!obj.hasfocus) {
  obj.focus();
 }
    if (window.getSelection && window.getSelection().getRangeAt) {
        range = window.getSelection().getRangeAt(0);
  range.collapse(false);
        node = range.createContextualFragment(text);
  var c = node.lastChild;
        range.insertNode(node);
  if(c){
   range.setEndAfter(c);
   range.setStartAfter(c)
  }
  var j = window.getSelection();
  j.removeAllRanges();
  j.addRange(range);
 
    } else if (document.selection && document.selection.createRange) {
        document.selection.createRange().pasteHTML(text);
    }
}
$(document).ready(function(){
 $('#button').click(function(){
  $('.ul').show();
 })
 $('.ul li').each(function(){
  $(this).click(function(){
   inimage($(this).text());
  })
 })
});
</script>
</head>
<body>
 <div contenteditable="true" id="im_message_area" class="im-message-area"><br></div>
 <a href="javascript:void(0)" id="button">按鈕</a>
 <ul class="ul">
  <li>(笑)</li>
  <li>(哭)</li>
  <li>(樂)</li>
 </ul>
</body>
</html>

希望本文所述對大家的javascript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
丝袜亚洲另类欧美重口| 综合国产在线观看| 国产一区二区三区久久精品| 91在线免费观看网站| 欧美专区第一页| 日韩免费观看视频| 欧美激情一区二区三区成人| 亚洲天堂av在线播放| 亚洲人午夜精品免费| 亚洲欧美日韩综合| 国产91成人video| 在线成人激情黄色| 久久人人看视频| 日本19禁啪啪免费观看www| 亚洲激情成人网| 日韩欧美国产网站| 国产精品免费在线免费| 国产精品aaaa| 亚洲精品免费网站| 成人久久久久久| 欧美日韩另类字幕中文| 在线成人一区二区| 欧美天堂在线观看| 伊人一区二区三区久久精品| 欧美日韩一区二区三区在线免费观看| 亚洲视频在线观看视频| 中文字幕av日韩| 国产精品露脸av在线| 亚洲毛片在线看| 日韩在线观看免费全| 国产精品一二三在线| 中文字幕日韩欧美精品在线观看| 亚洲第一精品夜夜躁人人爽| 久久视频在线看| 精品国产户外野外| 丝袜亚洲欧美日韩综合| 日本免费在线精品| 国产激情久久久久| 欧美电影免费观看网站| 亚洲欧美中文日韩v在线观看| 精品免费在线观看| 日韩av网站大全| 色妞色视频一区二区三区四区| 久久久成人精品| 精品国产乱码久久久久久天美| 亚洲国产精品va在线看黑人| 中文字幕日韩在线视频| 久久久亚洲影院你懂的| 亚洲综合自拍一区| 日韩欧美国产免费播放| 久久亚洲精品国产亚洲老地址| 精品一区二区三区四区| 欧美xxxx综合视频| 亚洲va欧美va在线观看| 国产精品久久久久久久一区探花| 国产精品吴梦梦| 欧美诱惑福利视频| 欧美精品国产精品日韩精品| 性欧美长视频免费观看不卡| 福利微拍一区二区| 日韩美女在线观看| 136fldh精品导航福利| 欧美一级视频一区二区| 欧美乱大交做爰xxxⅹ性3| 久久天天躁夜夜躁狠狠躁2022| 久久精品国产成人精品| 91网在线免费观看| 91精品国产99久久久久久| 久久久久久久av| 亚洲国产美女久久久久| 人人爽久久涩噜噜噜网站| 国产精品电影在线观看| 91久久久久久久久久久| 亚洲国产精品久久久久秋霞蜜臀| 欧美福利视频在线观看| 亚洲免费人成在线视频观看| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲久久久久久久久久| 欧美另类高清videos| 亚洲丁香婷深爱综合| 国产91对白在线播放| 亚洲免费电影一区| 精品一区二区亚洲| 欧美日韩国产黄| 久久久久成人网| 亚洲精品国产拍免费91在线| 亚洲男人av电影| 国产精品免费视频xxxx| 岛国av午夜精品| 久久亚洲一区二区三区四区五区高| 少妇久久久久久| 在线观看国产精品91| 国模精品视频一区二区| 久久久国产一区二区三区| 国产日韩在线看| 亚洲第一精品夜夜躁人人躁| 91在线视频免费| 美女精品视频一区| 国产成人精品一区二区在线| 欧美激情在线一区| 欧美激情在线观看视频| 日本精品一区二区三区在线播放视频| 亚洲最新中文字幕| 中日韩美女免费视频网址在线观看| 国产精品视频一区国模私拍| 国产伦精品一区二区三区精品视频| 欧美日韩国产中文精品字幕自在自线| 91免费高清视频| 操人视频在线观看欧美| 日本一区二区三区在线播放| 久久综合色影院| 欧美精品午夜视频| 亚洲精品久久久久中文字幕二区| 欧美精品videosex性欧美| 色噜噜国产精品视频一区二区| 日韩电影免费观看在线观看| 在线国产精品视频| 中文字幕亚洲欧美日韩2019| 欧美一二三视频| 亚洲黄色成人网| 国产视频精品自拍| 久久久噜噜噜久久中文字免| 亲爱的老师9免费观看全集电视剧| 中文字幕精品久久| 亚洲欧美日韩区| 久久99精品国产99久久6尤物| 欧美激情欧美狂野欧美精品| 亚洲一区免费网站| 亚洲乱码国产乱码精品精| 国产+人+亚洲| 久久久在线免费观看| 欧洲美女7788成人免费视频| 欧美国产中文字幕| 久久影视电视剧免费网站清宫辞电视| 亚洲女人天堂视频| 26uuu另类亚洲欧美日本一| 日韩亚洲欧美成人| 国产欧美一区二区三区久久人妖| 亚洲欧美国产日韩中文字幕| 国产精品一二三在线| 亚洲国产精品网站| 成人福利网站在线观看11| 国产综合香蕉五月婷在线| 在线播放国产一区二区三区| 国产在线拍揄自揄视频不卡99| 欧美成人自拍视频| 97视频人免费观看| 91精品综合久久久久久五月天| 国产精品极品美女在线观看免费| 揄拍成人国产精品视频| 日韩在线观看免费全集电视剧网站| 色偷偷噜噜噜亚洲男人的天堂| 欧美日韩国产成人在线| 亚洲人永久免费| 日韩中文字幕在线播放| 久久的精品视频| 亚洲人成在线一二| 国产免费一区二区三区香蕉精| 最近2019中文字幕一页二页| 亚洲第一区中文99精品| 国产精品美女www爽爽爽视频| 久久国产精品视频| 日韩免费中文字幕| 欧美最猛性xxxxx(亚洲精品)|