覚書 (Page 33)

« back | top | next »    [ 1 ... 31 32 33 ]

ちょっと小細工:textareaの高さを自動調節

改行入力なしでオートラップされた場合も自動調節してくれるとうれしいかな?と思ってちょっと小細工してみました。
■元ネタ
元記事:textareaのサイズを入力にあわせて調整するJavaScript (イラストdeブログ開発記)
経由:404 Blog Not Found:javascript - 勝手に添削 - textareaの高さを自動調節
■ソース
<script type="text/javascript">
function    initResizeTextarea(textarea) {
    if (!textarea||textarea._initResizeTextarea_) return;
    textarea._initResizeTextarea_=true;
    var offset=textarea.scrollHeight-textarea.offsetHeight;
    var lastLength=textarea.value.length, initRows=textarea.getAttribute('rows');
    if (isNaN(initRows)) initRows=3;
    if (!window.opera) {
        textarea.onkeyup=function(){
            var rows=textarea.getAttribute('rows');
            if (textarea.value.length<lastLength) {
                while (textarea.scrollHeight-textarea.offsetHeight<=offset) {
                    textarea.setAttribute('rows',--rows);
                    if (rows<=initRows) break;
                }
            }
            while (offset<textarea.scrollHeight-textarea.offsetHeight) {
                textarea.setAttribute('rows',++rows);
            }
            lastLength=textarea.value.length;
        };
    }
    else {
        textarea.onkeyup=function(){
            var lines=textarea.value.split('\n');
            var len=(initRows<lines.length)?lines.length:initRows;
            textarea.setAttribute('rows',len);
        };
    }
}   //  end of initResizeTextarea()
</script>

<textarea cols="64" rows="4" onfocus="initResizeTextarea(this)">
イチ


</textarea>
■サンプル
動作確認は、IE7(Sleipnir)、Firefox 2.0.0.14、Safari 3.1.1、Opera 9.27 で行いました。
ただし、Opera はscrollHeightの値が変化してくれないため、手動で入力した改行のみ対応で、オートラップには対応できていません。
どうも、Operaのtextareaは鬼門らしい(「内容に合わせて伸縮するテキストエリア」を Opera にも - m2より)

この記事をニフティクリップβに追加 この記事をはてなブックマークに追加 2008/05/21(水) 01:53 | | コメント | トラックバック

Googleの検索結果からH2タグが消える現象の原因

Google検索結果画面のHTML構造、変わりました?で書いていた、Googleの検索結果から<h2 class=r>タグが消える、という謎の現象ですが、原因らしきものがわかりました。
どうやら、Googleが読み書きしているらしいCookie(PREF)の値に"GBV=1"というのが含まれているとこのようになるみたいです。
例えば、JavaScriptオフにしたままで、
[A] http://images.google.com/images?gbv=2&hl=ja&safe=off&q=%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8
にアクセスすると、
[B] http://images.google.com/images?hl=ja&safe=off&q=%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8&gbv=1&ei=62QbSPX8MJPS6gO67cSMCg
のように、パラメータに"gbv=1"がついたページへとリダイレクトされますが、このときにCookieに"GBV=1"というのが追加されてしまいます。
これで、通常の検索を行うと、検索結果からH2タグが無くなってしまいます。
この状態だと、例えばLDRizeで[v][o]が効かなくなったりする弊害が出てしまいます。
元に戻すには、JavaScriptをオンにした状態で、[A]にアクセスします。
で、以前記事にした、AutoPagerize/AutoPagerlike:Google イメージ検索への対応を試みるでは、わざと"gbv=1"付きのページを読込んでいるので……これを使っていると、勝手に上記現象が発生してしまうことになります。
とりあえず、対策した設定ファイル(!!autopageroptions.user.js)に差替えておいてください。
設定ファイルをカスタマイズしていて上書きしたくない場合、DOCFILTERのところに、
    ,   'http://images\\.google\\..+/images\\?.+':[function(doc,url){   //  Google イメージ検索用
            var dummy=new Image();
            dummy.src='http://images.google.com/images?gbv=2&hl=ja&safe=off&q=%E3%83%9A%E3%83%BC%E3%82%B8?update='+(new Date()).getTime();  //  for delete cookie(PREF= .. GBV=1 ..)
        }]
を追加します。
これは、継ぎ足しページを"gbv=1"で読込んだ後、"gbv=2"がついたURIにダミーでアクセスすることで、Cookieを書換させています。
oAutoPagerizeのGoogleイメージ検索対応 oAutoPagerize ver 0.4.1の方は対策されてるんだろうか……?

この記事をニフティクリップβに追加 この記事をはてなブックマークに追加 2008/05/03(土) 04:34 | | コメント | トラックバック

« back | top | next »    [ 1 ... 31 32 33 ]