#実現したいこと
textarea
内のカーソル位置を取得し、カーソルの左側に下記のイメージのようなボタンを設置したい。
html
1<html> 2<head> 3<script type="text/javascript" src="layout.js"></script> 4<title>sample</title> 5</head> 6<body> 7<p>row:<input type="text" name="row"></p> 8<textarea cols="30" rows="10"> 9aaa 10bbb ccc ddd 11 12eee 13fff 14 15 16</textarea> 17</body> 18</html>
js
1var events='keyup click'; 2events.trim().split(/\s+/).map(function(j){ 3 document.addEventListener(j,function(e){ 4 var t=e.target; 5 if(t.nodeName==="TEXTAREA"){ 6 var v= t.value; 7 var selin = t.selectionStart; 8 var v1=v.substr(0,selin); 9 var v2=v.substr(selin); 10 var row=((m=v1.match(/\n/g))?m.length+1:1); 11 document.querySelector('[name=row]').value=row; 12 } 13 }); 14}); 15
#試したこと
qiita等の記事を参考にカーソルの置かれている行数までは取得することはできた。
#分からないこと
現在のキャレット位置の先頭文字にボタンを設置する方法が分からない。