PerlによるCGIを用いてHTMLページを出力しているのですが、出力後に「スクロールバーを一番下に移動させる」という動作をさせるには、Perlで具体的にどのように記述すれば良いでしょうか。
Perlにはそういう機能はないので、
Perlから吐き出すHTMLにJavascriptを記述する事でなら実現できます。
<head> ~ </head> に。 <script type="text/javascript"> window.onload=function(){ document.body.scrollTop = document.body.scrollHeight; } </script>
なお、doctype宣言により標準モードとなる場合は上記のままでは動作しません。
DOCTYPE 宣言による Property の違いについて : 独断と偏見の何でもレビュー
こちらを参考にJavascriptを修正するか(ブラウザによって違いがあるので面倒)、
フラグメントIDを書き換える方法をとります。
<head> ~ </head> に。 <script type="text/javascript"> window.onload=function(){ location.href='#footer'; } </script> body内末尾の要素にidを付けておく。 : : <XXX id="footer">~</XXX> </body> </html>
スクロールバーの移動はブラウザを制御することに他ならないのでPerlに限らずCGIで行うことはできません。
しかし、あまり行儀のいい方法ではないですがJavaScriptでリダイレクトさせることでそのように見せることは可能です。
bodyタグを<body onload="location.href='#hoge';">として
</body>の直前に<a name="hoge">を置いてやるのはどうでしょうか?
コメント(2件)
JavaScript window.scroll()について
http://www.red.oit-net.jp/tatsuya/java/scroll0a.htm
http://www.tohoho-web.com/js/window.htm#Operate