• ベストアンサー

URLの♯(ハッシュマーク)の代替え手段

URL#○○ で、同一ページ内をid=○○までジャンプすると思うのですが、 アドレスに#を使用しないで同じことができませんか? アドレスに#記号が入るのが見映え的に嫌なのです。 初心者の質問ですみませんが、 よろしくお願いいたします。

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

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.3

#移行はURLの一部ではありますが、それより前は本来のなすりです。  #以降の部分識別子はブラウザに保存され、サーバーには送信されません。 URLでサーバーに送られる要求の http:     プロトコル //       インターネット hoge.com    ドメイン /abc/efg/hijk PATH_INFO ?以降     QUERY_STRING  はご存知だと思います。  QUERY_STRIMG が、かっこ悪い--ではなくて、セキュリティ上問題がある場合には、PATH_INFOや標準入力を使います。  その方法を使うのでしたら、メールで標準入力は使えませんからQUERY_STRINGないし、PATH_INFOで情報を渡し、サーバー側でスタイルシートを書き換えて出力させるのが良いでしょう。javascriptではセキュリティ上難しいでしょう。 [例] http://hoge.com/abc/efg/hij/klm でURL示す。 サーバーはabcというCGIプログラムで、ページを作成し、その時点でのPATH_INFO(/efg/hij/klm)のページを表示し、そのページでスタイルシートの呼び出し先(rel)で、スタイルシートをことなる指定するか、スタイルシートもCGIで出力して、HTTP_REFERERからスタイルシートを書きかえる。  簡単な方法として思い浮かぶのはこの程度ですが、「労多くして功少なし」の感を否めません。  #2.1.2 部分識別子 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/intro/intro.html#h-2.1.2 )は、ページ内の特定の位置(一意の場所)を示す重要なものです。決したかっこ悪いものではありません。↑のように。

その他の回答 (2)

  • aoyama984
  • ベストアンサー率45% (253/561)
回答No.2
  • cma3atgoo
  • ベストアンサー率35% (32/90)
回答No.1

ご要望に沿うかわかりませんが、 自分の勉強がてらに調べてみましたので参考までにソースを貼ります。 javascriptを使っているのでアドレス欄は変わりません。IEだと警告が出たりしますが。 jQueryを使っています。 jQueryについては検索するといろいろ出てきますので調べてみてください。 ここから================================= <html> <head><title></title> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> function gototop() { $('html,body').animate({ scrollTop: 0 }, 'fast'); } function goto(toid) { var p = $("#" + toid).offset().top; $('html,body').animate({ scrollTop: p }, 'slow'); } </script> </head> <body> <A href="javascript:goto('A');">AAAAA</A> <br> <A href="javascript:goto('B');">BBBBB</A> <br> <A href="javascript:goto('C');">CCCCC</A> <br> <p id="A">AAAAAAAAAAAAAAAAAAAAAA<p> <A href="javascript:gototop();">top</A> <br> <p id="B">BBBBBBBBBBBBBBBBBB<p> <A href="javascript:gototop();">top</A> <br> <p id="C">CCCCCCCCCCCCCCCCCCCCCC<p> <A href="javascript:gototop();">top</A> </body> </html> ここまで=================================

d_382
質問者

お礼

わざわざお調べいただいてありがとうございます。 説明不足で申し訳ございません、 「リンクの貼り方」ではなく「アドレスに#を使用しない方法」を知りたかったのです。 同ページ内のどこかをクリックするのではなく、 たとえばメール等で人に「ここを見て→http://www~.co.jp#idだよ!」と紹介する際 #を表示したくないのです。 大変失礼いたしました。

関連するQ&A