好き勝手に・げーあにん?

ファミコンと同い年の社会人ヌルオタの日記

textareaの高さを自動調節するブックマークレット

はてなダイアリーのコメントを書くときのテキストエリアの狭さがずっと気になっていたので、上記サイトを参考に見ているページにあるtextareaに無理やり高さの自動調節を埋め込むブックマークレットを作ってみた。

javascript:(function(){var%20a=document.getElementsByTagName('textarea');if(a.length<1)return;for(var%20i=0;i<a.length;++i){if(a[i].onkeyup==undefined)a[i].setAttribute('onkeyup','var%20t=event.target||event.srcElement;var%20l=t.value.split("\\n").length;t.setAttribute("rows",l<18?l:18);');}}())

ダイアリーのコメントと、日記編集のtextareaでは動いたので、私が使う範囲では万事解決。他のサイトはどうなっても知らないよ!

Firefox2.0で動作確認。IE6で動かないことを確認(苦笑)。JavaScriptよくわからん!(いいわけ)
あんまり縦長になりすぎても困るので、MAX18行までにしてあります。私のノートPCだとこのぐらいでちょうどいいのです。もっと縦長になって欲しい人は最後のほうの18になってるところ二箇所を書きかえてくださいってことで(投げやり)。

見にくいので、ちょっとだけ整形した状態も。

function(){
  var a=document.getElementsByTagName('textarea');
  if(a.length<1)return;
  for(var i=0;i<a.length;++i){
    if(a[i].onkeyup==undefined) {
      a[i].setAttribute('onkeyup',
        'var t=event.target||event.srcElement;+
        'var l=t.value.split("\\n").length;'+
        't.setAttribute("rows",l<18?l:18);');
    }
  }
}()


onkeyupの設定されていないtextareaだけを処理しているつもりだから、害はないと思うんだけど確認はしていない(投げやり)。JavaScriptよくわからんので(いいわけ)。

JavaScriptをちゃんと覚えようと思いたってから早数ヶ月。結局、ほとんど何にもやってないなー‥‥。


関係ないですが、ちょっと前に作った、ニコ動のタグをそのまま livedoor clip するブックマークレットが、ニコ動の更新で動かなくなってたので対応しました。まぁ、私しか使ってないとは思いますが。