重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

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.ph …
のような情報はありましたが、scriptタグの事前にファイルを読み込ませると言った方法でした。

直接jsファイル内でクエリが読み込める方法がありましたら教えてくれませんか?

A 回答 (3件)

PHPがつかえる環境であれば・・・


<script src="http://www.hoge.jp/example.php?id=1"></script>
でパラメータを$_GETでわたせばいいんじゃない?

javascriptだけでやるなら
document.getElementsByTagName("script")でスクリプトタグを
拾って、forでまわしながらsrcの値をみて、?以降のデータを
パラメータのように評価すればいいでしょう?
でもこれってファイル名が必要になりますので、js内で自分自身
のファイル名を宣言する必要があるし、ファイル名の競合だって
想定されます。

それを考えれば、スクリプトタグの前にグローバル変数として
提示する方がましかなぁ・・・

いずれにしろ確実な方法ではないのでとてもお勧めできません。
自己責任と気合でやるしかないですね
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/01/13 23:42

やりたいことが不明確です。

サーバーサイドでJavaScriptを動かしたいのですか?それともブラウザ上で動かすときに、そのURLを参照したいということ?
後者であれば、お書きのページにあるDOMを使った方法で、スクリプトタグの内容文字列を取得できます。

サーバーサイドでCGIでJavaScriptが動く環境なら前者も出来ると思います。

この回答への補足

イレギュラーなのは分かっておりますが、
事前条件からjsファイルのクエリからjsファイル内に値を渡すという
方法を取ることになりました。
jsファイル内にはデータを取得するファイルがあり、実際にクエリを
必要としているのはそのファイルです。

<script src="​http://www.hoge.jp/example.js?id=1"></script>

example.jsのファイル内でdata.php(DBとの接続の為のファイル)を呼び出しています。

そのjsファイル内で
『data.php + idのクエリ値』

という形式にしてDBから値を取得したいのです。
回りくどい方法なのは重々承知の上で
クエリを取得する方法がありましたら教えてもらえますでしょうか。

補足日時:2009/01/13 22:25
    • good
    • 0

ちゃんとやりたいなら、jsファイルにPHPやCGIを割り当てるのが


妥当でしょう。
どうしてもjavascriptだけでやるとなると、かなりイレギュラーな
処理になります

この回答への補足

イレギュラーなのは分かっておりますが、
事前条件からjsファイルのクエリからjsファイル内に値を渡すという
方法を取ることになりました。
jsファイル内にはデータを取得するファイルがあり、実際にクエリを
必要としているのはそのファイルです。

<script src="​http://www.hoge.jp/example.js?id=1"></script>

example.jsのファイル内でdata.php(DBとの接続の為のファイル)を呼び出しています。

そのjsファイル内で
『data.php + idのクエリ値』

という形式にしてDBから値を取得したいのです。
回りくどい方法なのは重々承知の上で
クエリを取得する方法がありましたら教えてもらえますでしょうか。

補足日時:2009/01/13 22:25
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!