• ベストアンサー

URLのアンカーをCGIに渡したい

<!-- document.write (location.hash); // --> 上記の方法で、現在ページURLのアンカー(#aa)がブラウザに表示されています。 ***html#aaの「#aa」部分をAnchor.cgiに 引き渡したいのですが方法がわかりません。 ご教授の程宜しくお願い致します・・・m(_ _)m できれば、送る側と受け取る側の両方を 具体的に記述して頂けると助かります・・・(^^ゞ

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

なにをトリガーにしているかによってやり方が違うでしょう。 javascriptでlocation.hrefかなにかでget渡しするなら Anchor.cgi?hash=・・・となるようにlocation.hashを たしこんでやればいいでしょうし formわたしであればhiddenに値をいれてしまえばいいでしょう。 パラメータわたしがいやならリファラでできるかも・・・

good148
質問者

お礼

http://time3.sakura.ne.jp/sub/cgi/page3.html 窓を細くして見ていただくと縦に並びます。 やっと出来たようです・・・・・・(^^) >html#01のアンカー部分#01が受け渡せていません。 #01の「#」がperlの特殊記号に判定されて認識されなかったようです。 それで「01」部分だけ受け渡すようにしたら、上手くいったようです。 JavaScriptの記述部分は参考サイトからコピペしたものですので 半分ほどしか意味はわかっていませんが、まあいいです・・・(^^ゞ 前回の質問に続き回答して頂き有り難うございました・・・m(_ _)m カンシャ!

good148
質問者

補足

回答有り難うございます。 データを受けるCGI側は次の通りです。 use CGI; my $q = CGI->new(); my $url = $q->url; print "<p>url:$url</p>\n"; if ($ENV{'REQUEST_METHOD'} eq 'POST') { read(STDIN, $alldata, $ENV{'CONTENT_LENGTH'}); } else { $alldata = $ENV{'QUERY_STRING'}; } print "<p>変数:$alldata</p>\n"; print "<p>リファラ:$ENV{'HTTP_REFERER'} \n"; 送り側は、リンク貼っておきます。 http://time3.sakura.ne.jp/sub/cgi/page1.html html#01のアンカー部分#01が受け渡せていません。 窓を細くして見ていただくと縦に並びます。 form渡しは、送信ボタンを押さないと渡せないようです。 そこで流れが一旦止まってしまいますので考慮外です。 送信ボタンを押さなくても渡せるのであればいいのですが。

関連するQ&A

  • アンカーリンクをクリックさせた後URLに#hogeを表示させない方法

    下記を使って、JavaScriptで同一ページ内アンカーにジャンプさせたのですが、 location.hash = "#hoge"; ジャンプ後にURLの最後に#hogeが付いてしまいます。 ブラウザ上のURLの最後に#hogeをつけないでジャンプさせる方法はありますでしょうか。

  • URLの取得について

    localserverでjavaを使っています。 a.html内を二つのフレームに分けて ひとつをaa.html(localserver内) もうひとつをab.html(外部のhttp:www~からはじまるserver)にしています。 aa.htmlでab.htmlのURL表示がうまくいきません。 document.write(parent.location);親フレームのURLの表示 document.write(parent[0].location);aa.htmlのURLの表示はうまくいきます。 ab.htmlをlocalserverのドキュメントにするとうまくいくのですが・・・ どうしたら外部サーバーにあるab.htmlのURLを取得できるでしょうか?

    • ベストアンサー
    • Java
  • URLの取得

    すいません。ご指摘をいただいたのでカテゴリ替えして質問させていただきます。 localserverでjavaを使っています。 a.html内を二つのフレームに分けて ひとつをaa.html(localserver内) もうひとつをab.html(外部のhttp:www~からはじまるserver)にしています。 aa.htmlでab.htmlのURL表示がうまくいきません。 document.write(parent.location);親フレームのURLの表示 document.write(parent[0].location);aa.htmlのURLの表示はうまくいきます。 ab.htmlをlocalserverのドキュメントにするとうまくいくのですが・・・ どうしたら外部サーバーにあるab.htmlのURLを取得できるでしょうか?

  • URLのパラメータを取得するスクリプトは?

    初心者です。 無謀にもURLのパラメータを取得するためのスクリプトを作成していますが、 どうしても分からなく・・。 例えば「http://pekepeke.com/sample.html?AA=1234&BB=9876」のURLから、「AA」「BB」の パラメータ「1234」「9876」を取得し表示したいと考えています。 色々調べながら・・・下記を作成したのですが、表示が1項目のみしかされません。。 (素人・・と笑われるかもしれませんが・・) どうしたら2つ(目標は10項目ぐらいですが)を項目別に行別に表示できるのかを教えて 下さい。。 ---------------サンプル <html> <head> <title>JS test</title> </head> <body> <script> function getUrlVars() { var vars = [], hash; var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); for(var i = 0; i <hashes.length; i++) { hash = hashes[i].split('='); vars.push(hash[0]); vars[hash[0]] = hash[1]; } return vars; } var tag1 = null; var hash = getUrlVars(); var tag1 = 'AA ' +hash['AA'] var tag2 = null; var hash = getUrlVars(); var tag2 = 'BB ' +hash['BB'] document.write(tag1); document.write(tag2); </script> </body> </html> ------------------------------------------------ どうぞよろしくお願いします。

  • 相対URLによるリダイレクト

    Locationヘッダに転送先のURLを指定する際に、相対URLをフルパスで指定すると内部リダイレクトになりますが、絶対URLを指定せずにブラウザにリダイレクトさせる方法はないでしょうか。 具体的にはこうです。 URL http://www.xxx.com/dir/from.cgi という位置にスクリプトがあるとして、ドキュメントルートにある「to.html」にリダイレクトさせたい場合、 Location: http://www.xxx.com/to.html と出力するのではなく、 Location: /to.html と出力すると、内部リダイレクトによってブラウザに返されることなく、つまりブラウザの「アドレス」欄はhttp://www.xxx.com/dir/from.cgiのまま「to.html」の内容が表示されるわけですが、そうではなく前者のように動作させたいのです(ブラウザに返してリダイレクトさせたい)。 目的は、ドメインなど絶対URLが変更になっても汎用的にスクリプトを移行できるようにしたい(絶対URLを書かなくて良いようにしたい)のですが、内部リダイレクトでは表示されるHTMLの内容によって、たとえば<img src="./image.gif">など相対パス指定の参照が正しく表示されないためです。 どうぞよろしくお願いいたします。

    • 締切済み
    • CGI
  • 別ページのインラインフレームのアンカーに移動させる方法

    はじめまして、勉強になります。色々調べてやってみたのですがどうしてもうまく動作してくれません。 やりたい内容は、あるページから同一ドメイン内のあるページに飛ばした時にアンカー情報(#~)付きで渡して、渡したページ先のインラインフレーム内のアンカーに移動させたいのです。 下のソースでstr変数がうまく渡っていないのか、受け取り側のスクリプトがまずいのかが分かりません。(ちなみに途中で変数をモニターする方法があるのでしょうか?) 一応次のページのURLバーには?以降のアンカー情報付きで表示されてはいるのですが、その?以降のアンカー情報がインラインフレームのURLに渡っていないような状態です。 以下省略ソースです。 【送信元】 <SCRIPT Language="JavaScript"> <!-- html1 = "飛ばす先.htm"; function watasu(str){ location.href = html1 + "?"+ str; } //--> </SCRIPT> </head> <body ~ <img src="画像.jpg" onClick="watasu('#2')"> 【受信側 親ページ】 <script language="JavaScript" type="text/javascript"> <!-- url1 = "liveevent_test.htm"; function jump2(){ url2 = "読み込むインラインフレーム.html"; str = location.search.substr(1,location.search.length-1); top.インラインフレーム名.location.href = url2+str; //top.インラインフレーム名.location.hash = #アンカー; <--ちなみにこの一行を上の一行と差し替えたら動きました。ですがここは前ページからの変数渡しにしたいのです。 } // --> </SCRIPT> <body ~ onLoad="jump2()">~ <IFRAME SRC="読み込むページ.html" name="インラインフレーム名" >~</IFRAME> どなたかヒントでもいいのでお力添えください…もしかして根本的なやり方がまずいのでしょうか。 よろしくお願いいたします。

  • アドレス欄のurlをファイルに書き出したい

    <script type="text/javascript" language="javascript"> <!-- document.write (location.href); // --> </script> 上記の方法でブラウザのアドレス欄のurlがページに表示されています。 現在表示されているurlを同じフォルダ内のurl.txtに書き出したいのです。 javascriptは余り詳しくないので、できればコピペできる形で ご教示して頂けるとありがたいです・・・(^^ゞ 宜しくお願いします・・・m(_ _)m

  • ホームページで、掲示板CGIファイルをindex.htmlからアンカー

    ホームページで、掲示板CGIファイルをindex.htmlからアンカーで呼び出しているのですが、ファイルが 見つかりませんとWEBサーバーが返してきます。プロバイダーはぷららで、独自CGIサーバーに登録したところ、独自CGI用ディレクトリが、/home/アカウント名/ となっており、URLは、http://cgi19.plala.or.jp/アカウント名/ で登録完了となりました。 これをindex.html側で、<a href="http://cgi19.plala.or.jp/アカウント名/bbs1/aska.cgi">掲示板</a> と呼び出しているのですが、この<a>タグのURLの表記方法に何か間違いなどあるのでしょうか。ぷららで独自CGIをお使いの方、ご指南いただければ幸いです。

    • ベストアンサー
    • HTML
  • ホームページで、掲示板CGIファイルをindex.htmlからアンカー

    ホームページで、掲示板CGIファイルをindex.htmlからアンカー ホームページで、掲示板CGIファイルをindex.htmlからアンカーで呼び出しているのですが、ファイルが 見つかりませんとWEBサーバーが返してきます。プロバイダーはぷららで、独自CGIサーバーに登録したところ、独自CGI用ディレクトリが、/home/アカウント名/ となっており、URLは、http://cgi19.plala.or.jp/アカウント名/ で登録完了となりました。 FFFTPで、掲示板CGI用フォルダをCGIサーバー内の、「/アカウント名/bbs1」として作成し、その下に 「/アカウント名/bbs1/aska.cgi」として、aska.cgiという、掲示板CGIファイルを設置しました。CGIファイルの属性も、755としました。 これをindex.html側で、<a href="http://cgi19.plala.or.jp/アカウント名/bbs1/aska.cgi">掲示板</a> と呼び出しているのですが、この<a>タグのURLの表記方法に何か間違いなどあるのでしょうか。それとも、CGIファイルの設置場所が間違っているのでしょうか。(/home/アカウント名/bbs1/aska.cgiに置いてもだめでした。) ぷららで独自CGIをお使いの方、ご指南いただければ幸いです。

    • ベストアンサー
    • CGI
  • a.cgi → b.cgiへデータの受渡し方法

    a.cgi → b.cgiへデータの受渡しを行いたいのですが i-modeのHPで,画面入力させた内容を a.cgi → b.cgiに受け渡す方法を教えて下さい。 例?:a.cgiに下記のコーディングでは無理ですよね・・・ $aa=$FORM{'aa'}; print "Location: http:・・・・・i/b.cgi?a=$aa\n\n";

    • ベストアンサー
    • Perl

専門家に質問してみよう