- ベストアンサー
自動ジャンプについて
フォームのSUBMITボタンを押すとデータが送信され、 そのデータが反映されたHTMLを表示しています。 このHTMLにアンカーを持った箇所があります。 この1つのボタンを押しただけで、データが反映された画面になった直後、自動で指定のアンカーにジャンプさせるにはどのようにすればいいか教えてもらえませんか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
#submitボタンを押す <form action=next.cgi> <input type=submit> </form> #next.cgiからnew.htmlを書き出したら、metaタグを返して新HTMLを呼び出す #例えばCGIをPerlで書いた場合、以下のように返す print <<EOT; Content-type: text/html <HEAD> <META http-equiv="Refresh" content="0;URL=http://ServerName/new.html#marker"> </HEAD> EOT やったことないけど、メタリフレッシュを返せばブラウザ側でマーカーを保持してページ内ジャンプできると思う。
その他の回答 (3)
- steel_gray
- ベストアンサー率66% (1052/1578)
> 移動先のアンカーを変数で指定しているとダメなのでしょうか。 変数だとダメということもないと思います。 ただ、展開した結果(吐き出したhtml)が、思ったとおりになっているかの確認はしてみたほうが良さそうですね。 あと、ラベルに記号などを含んでいるとurlエンコードされてジャンプしたいラベルと不一致になってしまうかもしれません。
- steel_gray
- ベストアンサー率66% (1052/1578)
#2です。 簡単なスクリプトを書いてローカル、サーバでテストしたらうまくいったんですが…ダメでしたか。 Javascript使ってもいいなら吐き出すhtmlを以下のようにすれば動くと思います。 <body onload="location.href='#label'">
お礼
やっぱりうまくいきません。 移動先のアンカーを変数で指定しているとダメなのでしょうか。
- steel_gray
- ベストアンサー率66% (1052/1578)
actionにそのままラベルを書けばよいかと思います。 <form action="hoge.cgi#label" method="get/post">
お礼
ありがとうございます。 やってみましたがダメでした。
お礼
ありがとうございます。 今やろうとしている事は1つのCGIだけの構成となっています。 つまり、最初にCGIを呼び出して表示された画面内にデータを入力し、送信ボタンでそのデータを自分自身に渡してやると、データが反映した画面が吐き出されます。 METAタグのrefreshを使うと、最初のデータを渡す前の初期画面になってしまうのでうまくいかないのですが・・・