- PR -

のロード後にスクロール移動について

1
投稿者投稿内容
卯月
会議室デビュー日: 2004/03/01
投稿数: 3
投稿日時: 2004-03-01 15:27
はじめまして。

<asp:botton>のロードし一覧表が表示された後に、ブラウザのスクロールを移動させたいのですが、うまく動作しません。
すみませんが、教えてください。
よろしくお願いいたします。

下記に、ソースを記します。

クライアント側
<SCRIPT LANGUAGE ="javaScript">
function scroll() {
window.scrollTo(0,500);
}
</SCRIPT>
サーバー側(page_load)
button1.Attributes.Add ("OnClick","scroll()")




Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-03-01 15:37
 サーバ側では、再ロード後に移動するようにスクリプトを登録します。
 ボタンの属性として登録すると、「スクロールした後にサーバへデータを送信」してしまいます。なので、エージェント(ブラウザ)がページのロードを完了したときに、スクロールするようにします。


 そこまでできているならこれでわかるかな?と思うのですが、いかがでしょう?
卯月
会議室デビュー日: 2004/03/01
投稿数: 3
投稿日時: 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)

すみませんが、教えてください。

きち
常連さん
会議室デビュー日: 2003/12/17
投稿数: 41
投稿日時: 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については過去にも取り上げられているので気になったら
見てみてください。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-03-01 18:03
引用:

卯月さんの書き込み (2004-03-01 17:23) より:

早速、サーバー側にスクリプトを登録しましたが、スクロールされませんでした。
以下の様に、登録しました。

サーバー側(button1_click)

Dim str As String
str = "<SCRIPT LANGUAGE='javascript'>"
str &= "window.scrollTo(0,500);"
str &= "</SCRIPT>"
Response.Write(str)


 答えはきちさんのとおりです。


 まず、変更せずに表示されたページの「ソース」を見てください。Response.Writeしたものは、HTML要素の外に出力されます(細工した場合を除く)。このため、Javascriptは動作しないときがあります。この場合、ページが何も読み込まれていないときに500ピクセル目にスクロールしようとします。当然、表示するべきものがまだ何もないのでスクロールできません。

 Page.RegisterStartupScriptを使うと、Form要素の終了直前に吐き出されます。そのため、スクロールが可能になります。

 もう一つ、Page.RegisterClientScriptBlockというのがあるのですが、こちらはForm要素の先頭(だったか、とにかく上の方)に追加されます。
卯月
会議室デビュー日: 2004/03/01
投稿数: 3
投稿日時: 2004-03-01 18:55
ありがとうございます。
スクロール移動する事ができました。

きちさん、ありがとうございました。
ソースコードを使用させていただきました。
さっそく、RegisterStartupScriptを見てみます。

Jittaさん、ありがとうございました。
分かりやすく解説していただき、とても勉強になりました。
RegisterClientScriptBlockについて、自分なりにですが、調べます。

1

スキルアップ/キャリアアップ(JOB@IT)