- - PR -
のロード後にスクロール移動について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-03-01 15:27
はじめまして。
<asp:botton>のロードし一覧表が表示された後に、ブラウザのスクロールを移動させたいのですが、うまく動作しません。 すみませんが、教えてください。 よろしくお願いいたします。 下記に、ソースを記します。 クライアント側 <SCRIPT LANGUAGE ="javaScript"> function scroll() { window.scrollTo(0,500); } </SCRIPT> サーバー側(page_load) button1.Attributes.Add ("OnClick","scroll()") | ||||
|
投稿日時: 2004-03-01 15:37
サーバ側では、再ロード後に移動するようにスクリプトを登録します。
ボタンの属性として登録すると、「スクロールした後にサーバへデータを送信」してしまいます。なので、エージェント(ブラウザ)がページのロードを完了したときに、スクロールするようにします。 そこまでできているならこれでわかるかな?と思うのですが、いかがでしょう? | ||||
|
投稿日時: 2004-03-01 17:23
件名の欄に<asp:button>が抜けおり、閲覧されている方々に迷惑をお掛けしていまい、この場をお借りして、謝罪させていただきます。本当にすみませんでした。
jittaさん、ありがとうございます。 早速、サーバー側にスクリプトを登録しましたが、スクロールされませんでした。 以下の様に、登録しました。 サーバー側(button1_click) Dim str As String str = "<SCRIPT LANGUAGE='javascript'>" str &= "window.scrollTo(0,500);" str &= "</SCRIPT>" Response.Write(str) すみませんが、教えてください。 | ||||
|
投稿日時: 2004-03-01 17:32
Dim script As New System.Text.StringBuilder()
script.Append("<script language=""JavaScript"">") script.Append("window.scrollTo(0,500);") script.Append("</script>") Page.RegisterStartupScript("authenticated", script.ToString) で回答は良いはずです。多分・・ RegisterStartupScriptについては過去にも取り上げられているので気になったら 見てみてください。 | ||||
|
投稿日時: 2004-03-01 18:03
答えはきちさんのとおりです。 まず、変更せずに表示されたページの「ソース」を見てください。Response.Writeしたものは、HTML要素の外に出力されます(細工した場合を除く)。このため、Javascriptは動作しないときがあります。この場合、ページが何も読み込まれていないときに500ピクセル目にスクロールしようとします。当然、表示するべきものがまだ何もないのでスクロールできません。 Page.RegisterStartupScriptを使うと、Form要素の終了直前に吐き出されます。そのため、スクロールが可能になります。 もう一つ、Page.RegisterClientScriptBlockというのがあるのですが、こちらはForm要素の先頭(だったか、とにかく上の方)に追加されます。 | ||||
|
投稿日時: 2004-03-01 18:55
ありがとうございます。
スクロール移動する事ができました。 きちさん、ありがとうございました。 ソースコードを使用させていただきました。 さっそく、RegisterStartupScriptを見てみます。 Jittaさん、ありがとうございました。 分かりやすく解説していただき、とても勉強になりました。 RegisterClientScriptBlockについて、自分なりにですが、調べます。 |
1