m2

「内容に合わせて伸縮するテキストエリア」を Opera にも

元ネタ。

実用 - 内容に合わせて伸縮するテキストエリア
http://d.hatena.ne.jp/brazil/20071004/1191432582

それ、Opera にも!*1

<script>
  fittingTextarea(document.getElementById('main'));
  
  function fittingTextarea(target){
    var MIN = target.clientHeight;
    var clone = document.body.appendChild(document.createElement('pre'));
    with(clone.style){
      visibility = 'hidden';
      width = target.clientWidth + 'px';
    }
    
    setInterval(function(){
      /*@cc_on clone.innerText = target.value.replace(/\r\n/g,'\n').replace(/^$/mg,' '); 
      // @*/ clone.textContent = target.value;
      target.style.height = Math.max(MIN, clone.offsetHeight + 20) + 'px';
    }, 50);
  }
</script>

調子に乗って IE にも対応したら別のところで苦労しました。

PHPと16人の仲間達 : innerTextへの改行文字が反映されないことがあるんですが
http://php16.exblog.jp/6188495/

*1:Operaのテキストエリアは鬼門