• ベストアンサー

Javascriptのクエリ(パラメータ)取得

Javascriptでクエリが取得できません。 現在、行おうとしていることは <html> <body> ~ <script src="http://www.hoge.jp/example.js?id=1"></script> ~ </body> </html> のidの値をexample.jsでクエリ取得し、example.js内でidを用いた計算を 行おうと思っています。 調べたところ、http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=47607&forum=28&4 のような情報はありましたが、scriptタグの事前にファイルを読み込ませると言った方法でした。 直接jsファイル内でクエリが読み込める方法がありましたら教えてくれませんか?

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

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

PHPがつかえる環境であれば・・・ <script src="http://www.hoge.jp/example.php?id=1"></script> でパラメータを$_GETでわたせばいいんじゃない? javascriptだけでやるなら document.getElementsByTagName("script")でスクリプトタグを 拾って、forでまわしながらsrcの値をみて、?以降のデータを パラメータのように評価すればいいでしょう? でもこれってファイル名が必要になりますので、js内で自分自身 のファイル名を宣言する必要があるし、ファイル名の競合だって 想定されます。 それを考えれば、スクリプトタグの前にグローバル変数として 提示する方がましかなぁ・・・ いずれにしろ確実な方法ではないのでとてもお勧めできません。 自己責任と気合でやるしかないですね

yotch_haru
質問者

お礼

訳あってスクリプトにはphpは使えません。 javascriptだけでやるなら?以降のデータを取得するようにしてみます。 幸いにもファイル名は固定なので可能のように思えます。 スクリプトタグの前に何かを挿入することも不可能な状態となっています ので、こちらの方法で試してみたいと思います。 本当にありがとうございました。

その他の回答 (2)

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

やりたいことが不明確です。サーバーサイドでJavaScriptを動かしたいのですか?それともブラウザ上で動かすときに、そのURLを参照したいということ? 後者であれば、お書きのページにあるDOMを使った方法で、スクリプトタグの内容文字列を取得できます。 サーバーサイドでCGIでJavaScriptが動く環境なら前者も出来ると思います。

yotch_haru
質問者

補足

イレギュラーなのは分かっておりますが、 事前条件からjsファイルのクエリからjsファイル内に値を渡すという 方法を取ることになりました。 jsファイル内にはデータを取得するファイルがあり、実際にクエリを 必要としているのはそのファイルです。 <script src="​http://www.hoge.jp/example.js?id=1"></script> example.jsのファイル内でdata.php(DBとの接続の為のファイル)を呼び出しています。 そのjsファイル内で 『data.php + idのクエリ値』 という形式にしてDBから値を取得したいのです。 回りくどい方法なのは重々承知の上で クエリを取得する方法がありましたら教えてもらえますでしょうか。

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

ちゃんとやりたいなら、jsファイルにPHPやCGIを割り当てるのが 妥当でしょう。 どうしてもjavascriptだけでやるとなると、かなりイレギュラーな 処理になります

yotch_haru
質問者

補足

イレギュラーなのは分かっておりますが、 事前条件からjsファイルのクエリからjsファイル内に値を渡すという 方法を取ることになりました。 jsファイル内にはデータを取得するファイルがあり、実際にクエリを 必要としているのはそのファイルです。 <script src="​http://www.hoge.jp/example.js?id=1"></script> example.jsのファイル内でdata.php(DBとの接続の為のファイル)を呼び出しています。 そのjsファイル内で 『data.php + idのクエリ値』 という形式にしてDBから値を取得したいのです。 回りくどい方法なのは重々承知の上で クエリを取得する方法がありましたら教えてもらえますでしょうか。

関連するQ&A