• ベストアンサー

自動ジャンプについて

フォームのSUBMITボタンを押すとデータが送信され、 そのデータが反映されたHTMLを表示しています。 このHTMLにアンカーを持った箇所があります。 この1つのボタンを押しただけで、データが反映された画面になった直後、自動で指定のアンカーにジャンプさせるにはどのようにすればいいか教えてもらえませんか?

質問者が選んだベストアンサー

  • ベストアンサー
  • t140
  • ベストアンサー率39% (59/150)
回答No.1

#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 やったことないけど、メタリフレッシュを返せばブラウザ側でマーカーを保持してページ内ジャンプできると思う。

freednia
質問者

お礼

ありがとうございます。 今やろうとしている事は1つのCGIだけの構成となっています。 つまり、最初にCGIを呼び出して表示された画面内にデータを入力し、送信ボタンでそのデータを自分自身に渡してやると、データが反映した画面が吐き出されます。 METAタグのrefreshを使うと、最初のデータを渡す前の初期画面になってしまうのでうまくいかないのですが・・・

その他の回答 (3)

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.4

> 移動先のアンカーを変数で指定しているとダメなのでしょうか。 変数だとダメということもないと思います。 ただ、展開した結果(吐き出したhtml)が、思ったとおりになっているかの確認はしてみたほうが良さそうですね。 あと、ラベルに記号などを含んでいるとurlエンコードされてジャンプしたいラベルと不一致になってしまうかもしれません。

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.3

#2です。 簡単なスクリプトを書いてローカル、サーバでテストしたらうまくいったんですが…ダメでしたか。 Javascript使ってもいいなら吐き出すhtmlを以下のようにすれば動くと思います。 <body onload="location.href='#label'">

freednia
質問者

お礼

やっぱりうまくいきません。 移動先のアンカーを変数で指定しているとダメなのでしょうか。

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.2

actionにそのままラベルを書けばよいかと思います。 <form action="hoge.cgi#label" method="get/post">

freednia
質問者

お礼

ありがとうございます。 やってみましたがダメでした。

関連するQ&A