textareaの高さを自動調整
404 Blog Not Found:javascript - 勝手に添削 - textareaの高さを自動調節を参考に、
function resize_textarea(elem){ elem.style.overflow='hidden'; elem.addEventListener('input',function(e){ var lines=e.target.value.split('\n'); e.target.rows=lines.length+1; //e.target.cols=lines.reduce(function(a,b)Math.max(a,b.length),0)+1; },false) } Array.forEach(document.getElementsByTagName('textarea'), function(elem){ resize_textarea(elem); })
というものを作った。
が、英数字の時以外は幅調整がうまくいかないので調べたら、cols属性は文字数を正確に表したものではなく、英数字の幅*指定した数字分の幅になるようだ。
困った。とりあえずコメントアウトしておいてまた考える。
追記:内容に合わせて伸縮するテキストエリア - oct inaoduなんてものがあった。こっちのほうがよさげ。