• ベストアンサー

HTMLに引数

CGIなどではなくHTMLにも引数が渡せると、最近知りました。 さて、HTML内でどうやってそれを受け取るのでしょう。 Intelのホームページのソースなどをみましたが、ごちゃごちゃしていてよくわかりませんでした。

  • HTML
  • 回答数9
  • ありがとう数7

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

  • ベストアンサー
noname#25358
noname#25358
回答No.9

 「javascript」という文字がダブってました。 <FRAME name=main src=”javascript:location.href=parent.document.location.search.substring(1)”>  これをそのまま使ってみてください。動くはずです。  (ただし<>と”は半角に戻してください)  そしてもちろん、0.htmを呼び出すときには必ず  .../0.htm?main.htm  などのように、ハテナのあとにファイル名を指定してあげないとページが読み込めませんと表示されます。 (なぜならエラー処理が入っていないためです)

haporun
質問者

お礼

うぉぉぉぉ! できましたぁぁぁ。 javascript:が、最初はいるのに、あとはいらないなんて、難しいですねぇ。 長々とホントどうもありがとうございました。

その他の回答 (8)

noname#25358
noname#25358
回答No.8

 ローカルでやってませんか?  一度FTPでプロバイダにアップロードしないと、――たぶんプロトコルの関係だと思うんですが――location.searchは使えません。  (httpdなんかをインストールして擬似的にローカルサーバーをあげてもいいですけど)  それから、もちろん「JavaScript:」は必要です(^_^;  こっちでは動作していますので、色々試せば動くはずです。がんばってください(^^)

haporun
質問者

補足

ローカルではないのですが・・・。 まさか、イントラネット上ではできないなんてことはありませんよねぇ。 もう、どこが間違っているのか、ぜんぜんわかりません。 http://haporun.go.to/0.htm が問題のファイルなので、どこが間違っているか指摘してくださると、非常にありがたいです。 お願いしますぅぅぅ(泣)。

noname#25358
noname#25358
回答No.7

 実際にためしましたが、 <FRAME name=main src='location.href=parent....'>  でうまく行きましたよ。  それとも、[更新]ボタンを押したときにトップに戻るあれを何とかしたい、という質問だったのでしょうか?(^_^;  であれば、期限指定なしのクッキーを使って、「最後にどこにいたか」を記憶させておくのが一番楽じゃないでしょうか。  ロジックがちょっと複雑になりますけど。  JavaScriptからは、document.cookie でアクセスできます。

haporun
質問者

補足

<frame src='location.href=parent.document.location.search.substring(1)' name=main> とやっていますが、ぜんぜんできませーん(泣)。 "javascript:" を加えてみたけど、何もない画面になってしまいました。 ダブルクォートとシングルクォートは関係なさそうだし。 >それとも、[更新]~ フレームの親がHTMLだと、更新したときにトップページに戻ったりはしないのですが、CGIだと戻ってしまうでしょう。 だから、CGIではなくHTMLに戻したかったのですが。 クッキーって難しいですか?

noname#25358
noname#25358
回答No.6

 はい。そうです。これは引数がそのまま表示されます。  引数のファイル名とはなんでしょう?  …………。  …………。(←気づいた)  ああ! 分かった(^_^;  じゃあ、これ↓試してみてください。  location.href=parent.document.location.search.substring(1)  だんだん長くなる……(笑)

haporun
質問者

補足

その方法も考えてはみたのですが、それをどこに書きましょう。 目的のフレームに、引数で送られてきたファイル名のファイルを表示するには・・・。 ・・・CGIなら簡単なんですけど(実際にhttp://haporun.go.to/でそうやってます)。 でもCGIを親フレームすると、表示更新したときにトップページに戻っちゃうから、それを何とかしつつ、右フレームに表示するファイルを引数で指定できないかなと思いまして。

noname#25358
noname#25358
回答No.5

 判明しました(^_^;  ブラウザから右のフレーム(main)のソースを見てください。(「右クリック」→「ソースの表示(V)」)  これ、src="javascript:....." で記述したソースが展開されてますよね。  でですね。  「実行そのもの」が、子フレーム上で行われてるんです(^_^;  どういうことかというと、値は親フレームに渡しますよね? ですから親フレームが値を受け取っているにも関わらず、実際にスクリプトが実行されているのは子フレームである「main」なんです。  ですから、それを意識してソースを組む必要があるわけです。 <FRAME name=main src="javascript:parent.document.location.search.substring(1)">  よって、↑こうやれば動きます(確認済み)。

haporun
質問者

補足

??%!&$??。 送られてきた引数の名前のファイルの内容ではなく、その引数がそのまま表示されてしまうのですが・・・。 もしかしたら、質問のしかたが悪かったせいで、勘違いなされた?

noname#86982
noname#86982
回答No.4

document.writeって、実行されると、HTMLドキュメントが最初から書き直されちゃうんじゃなかったでしたっけ? だから、 document.write"<HTML>"; document.write"<HEAD>"; ...(中略) document.write"</HEAD>"; document.write"<BODY>"; ...(中略) document.write"<BODY>"; document.write"</HTML>"; まで書かないとならないのではないでしょうか? そういう意味だと思うのですが… 間違ってたらすみません(^^;

haporun
質問者

お礼

>最初から書き直~ そういうわけではないようです。 frameの中で関数は使えないとしても、変数は使えないでしょうかねぇ。

noname#25358
noname#25358
回答No.3

 補足見ました。  document.writeは<HTML>が始まっている必要があるのかもしれません。documentオブジェクトが厳密にどの段階で生成されるのか分からないので。  なんで、いちおーファイルに分けて試してみてください。

haporun
質問者

補足

・・・? <html>ではなくて<body>のこと? http://haporun.go.to/0.htm ってな具合になっているのですが。 やっぱり、フレームの中じゃ、JAVA使えないんですかねぇ。

noname#25358
noname#25358
回答No.2

 補足見ました。  えとですね。それ、substringを「実行しているだけ」です(笑) それに引数も1つ足りません。  substringの引数は2つで、それに表示するにはdocument.writeを使わなければいけません。  ですので、HTMLファイルに渡された文字列を表示するスクリプトは、  document.write(location.search.substring(1,location.search.length-1));  となります。  それからですね。このlocation.searchですけど、実はこれ、ローカルだと正しく動かないんですよ。原因は不明なんですが、必ずヌル文字列が返ってしまいます。ですからローカルでやるときはlocation.hashを使う必要があります。このとき引数は、  index.html#abc  という具合に、ハテナではなくハッシュで渡します。  ところで、srcオプションの項目にJavaScript記述するのって、アリでしたっけ。動くならいいですケド。  ご存知かもしれませんが、HTML関連の勉強をするのに有名なところのURLを書きますので、役に立つようだったら参考にしてみてください。

参考URL:
http://wakusei.cplaza.ne.jp/twn/
haporun
質問者

お礼

document.writeも試したのですが、これをどうframeに適用していいか・・・。 substringは第2引数省略可能で、省略すると最後まで、だったような。 <a href="javascript:history.go(-1)" target=main> と同じように、frameのsrcでも使えないかな、と思ったのですが。 ダメですかね。

noname#25358
noname#25358
回答No.1

 JavaScriptです。  locationオブジェクトの変数searchにそれが入ります。  俺が実際にやってるのを参考URLに記述しますので、ソース内の関数GoBack()を見てください。  これは、引数に何も渡されていなければデフォルトの戻り先に戻り、渡されていればそっちに戻るというものです。

参考URL:
http://www.edit.ne.jp/~deagle/novels/peng23.htm?back=http://www.pp.iij4u.or.jp/~deagle/freeze.htm
haporun
質問者

お礼

ありがとうございます。 さて、フレームに引数で渡された名前のファイルを表示したいと思ったのですが、次のようにしてもできません。 <frameset cols="240,*" border=0> <frame src="list.html" name=list> <frame src="javascript:location.search.substring(1)" name=main> </frameset> どうしたらよいでしょう。 お願いします。

関連するQ&A

  • HTMLは必ず使われてるのでしょうか?

    どのサイトやホームページもHTMLは必ず使われてるのでしょうか? JavaScriptやPHPやCGIで書かれているページも HTMLは必ず使われてるのでしょうか?

    • ベストアンサー
    • HTML
  • これはHTMLだけでも作れますか?

    動きのあるかっこいいホームページをよく見かけるのですが(JavaScript ?CGI?)、 あれはHTMLとは別に何か他の特殊なソフトを使っているのでしょうか? それともHTMLだけでも作れるのでしょうか? 自分にとって、かなりの高望みですが→http://www.sony.co.jp/ こんなホームページはHTMLだけでは無理なのですか? 何を使ったらこんな様になるのでしょうか?

  • HTML内での分岐

    お世話になります。 現在HTMLでホームページを作成しており会員のユーザーとそうでないユーザーによって一部の画面表示を変更したいと思っています。 その異なる画像表示をさせてい部分がCGIのため読み込むものは下記の2つになります。 【会員の場合(loginに値がある場合)】 <!---HTML---> &_Html_login; print <<"<!---HTML--->"; 【会員でない場合(loginに値がない場合)】 <!---HTML---> &_Html_right; print <<"<!---HTML--->"; これをそのままHTMLのソースとして書き込みたかったたため下記のようにHTMLに記述しました。 ・・・(HTMLソース) </TABLE> <SCRIPT> var login = $login; if (login="") { print "<!---HTML---> &_Html_login; print <<"<!---HTML--->"; "; } else { print "<!---HTML---> &_Html_right; print <<"<!---HTML--->";"; }</SCRIPT> ・・・ しかしながら動作しないことにくわえてソースを見るとそのままJAVAの数式が表示されていました。 見当はずれのことをしているかもしれませんが、CGIの読み込み先ソースをHTML内で分岐させて表示させる方法があれば教えていただければうれしい限りです。 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • HTML について

    他のホームページのソースの画面のHTMLを、全然違うホームページのソースの画面に、貼り付けましたが、貼り付きませんでした。なぜですか?mnsのコミュニティの宣伝をするという、画面では、このHTMLをコピーして貼り付ければよいなどと、かいてありましたが?意味がよくわかりません。

  • file_get_contents関数で引数をURLにすれば、HTML

    file_get_contents関数で引数をURLにすれば、HTMLソースを取得できるのはわかるのですが、 例えば、URLが制限 255バイト?を超える場合、GETでなくPOSTタイプでHTMLを取得したいのですが、file_get_contents関数のように手軽にPOSTタイプで取得できる関数はありますか? PHP5を使っています。

    • 締切済み
    • PHP
  • XMLもHTMLに似たものなのでしょうか?

    ホームページは、HTMLで作成しますが XMLもHTMLに似たものなのでしょうか? HTMLについて調べていると たまにXMLと言う言葉も目にします。 XMLについていまいちイメージが掴めないのですが HTMLを「ソースを書いてホームページを作る拡張子」としたら XMLは何でしょうか?

    • ベストアンサー
    • HTML
  • CGIへの引数の渡し方

    直接プログラミングと関係あるかは分かりませんが、 Webなどでよく見る送信ボタンなどの、いわゆる"submit"を押したとき、 CGIが呼び出されることがよくあります。 実は今、あるページから項目を入力して送信ボタンを押すという行為を定期的に繰り返しているのですが、それをプログラムで書きたいと思いました。 そこで質問なのですが、"submit"などからCGIを呼び出したとき、CGIはいったいどうやって入力されたデータなどを読み取っているのでしょうか? CGIについての知識はあまりないのですが、引数として渡されるのでしょうか? (http://aaa.bbb/ccc.cgi?name=100 見たいな感じで) ちょっと調べてみたら上のような感じだと書いてあったので、web上のcgiが呼び出されるhtmlのソースを呼んで、Inputのnameがnameだったので、 ?name=abc としたのですが、何も起こりませんでした・・・ その当たりがよく分からないのでどなたか教えていただけると助かります。

    • ベストアンサー
    • CGI
  • 出来ているHTMLに無料CGIをつけるにあたって。

    現在、ホームページを作っていて、CGIを設置するのにとまどっています。CGIは初めてです!宜しくお願いします。 無料のCGIをサーバーにアップし、ちゃんと起動していますが、そのページを他のデザインと合わせるため、どうしていいか解りません。既にデザインとなるHTMLは出来ていますが、これをどうCGIとからめる(?)のか?他のサイトとかで調べても「文字を大きく」とか「色を変える」とかしか乗ってません。出来ているHTMLを入れたい感じなんです。 どうしたらいいか教えてもらえませんか? 宜しくお願いします!

    • ベストアンサー
    • CGI
  • HTMLフォームPOSTでの引数の渡し方

    HTMLのフォームでPOST送信を利用しているのにURIに引数を指定するのは良いのでしょうか? <form name="form" method="post" action="form.php?abd=123"> のようになっているサイトを見かける事があります。

    • ベストアンサー
    • HTML
  • 外部ファイルを別のHTMLファイルに表示したいと思います

    WEBページのHTMLファイルに外部のファイルから文字を読み込むことが出来たと思います。 Javascriptを使うのではなく、掲示板のようなCGIを利用したいと思うのです。 ホームページの作成にあまり詳しくない人が、HTMLファイルを書き換えてアップロードするのは難しいので、掲示板のように簡単に書き込めるCGIを設置して、そこに書込をすれば特定のページに文字や文章が貼り付けられる、という風に利用したいのです。 うろ覚えなのですが、 ・拡張子をHTMLからSHTMLにするということ ・表示したい部分のソースに<!--#exec cgi="○○.cgi"-->と加えるということ 等が条件だったと思います。 ○○.cgiの部分にあたるスクリプトがどこで公開されていたか、どんな物だったか記憶にないのですが、 ご存じの方があれば教えてください。

専門家に質問してみよう