外部ファイルを呼び出す際のGET値の取得
-
0 名前: れんこ : 2005/10/02 21:38
- 質問させて頂きます。
HTML等から外部.jsファイルを呼び出すとき
例えば src="b.js?0001" と記載し
URLに引数を与えた場合、b.js内でどのように処理するのでしょうか?
location.searchでは呼び出し元のHTMLに対する
値になってしまうので、わからず困っております。
宜しくお願い致します。
-
1 名前: m035 : 2005/10/02 21:38
- JavaScriptの外部ファイルは単体で呼び出されることはないと思いますが・・・。
HTML上で使うための言語ですので、
src="b.js"
として
変数や関数にデータをセットするしかないと思います。
-
2 名前: れんこ : 2005/10/02 21:38
- 回答ありがとうございます。
ちょっと説明不足だったかもです。
HTML内に
<script language="javascript" type="text/javascript" src="./b.js?0001" ></script>
と記載し、b.jsでは?以降の引数(今回は0001)を利用したいのです。
最終的にb.jsからの出力がdocument.write("?以降は0001");となり
表示は ?以降は0001 にという感じです。
宜しくお願いたします。
-
3 名前: m035 : 2005/10/02 21:38
- JavaScript外部ファイル自体のsrcを取得する方法自体はないと思われますので。
もし、面倒であればb.js内に変数(仮にhoge)を宣言し、それに代入する以下の方法を
<script language="javascript" type="text/javascript">
<!--
hoge="0001";
-->
</script>
そうでなければ
<script language="javascript" type="text/javascript" src="./b.js?0001" ></script>
このHTMLのソースから?以降を抜き出すしかなさそうです。
以下はIE6のみで動作を確認したソースから文字を抜き出すと言う、
強引な方法で作られたサンプルです。
同じディレクトリにb.jsが存在する必要があります。
<html>
<head>
<script language="javascript" type="text/javascript" src="./b.js?0001" ></script>
<script type="text/javascript">
<!--
window.onload=function(){
var deta=document.body.parentElement.innerHTML.match(/b\.js\?\d+/);
document.write("?以降は"+deta.toString().substr(5));
}
//-->
</script>
</head>
<body>
</body>
</html>
-
4 名前: れんこ : 2005/10/02 21:38
- >JavaScript外部ファイル自体のsrcを取得する方法自体はないと思われますので。
そうですか、、
丁寧なご回答ありがとうございました。
-
5 名前: きあらうむ : 2005/10/02 21:38
- グローバル変数に "0001" を代入しておけば、ページ内のどのJSファイルからでも
内容を参照することができます。
<script type="text/javascript">
id = "0001"; // グローバル変数 b.jsより先に宣言しておく
</script>
[ b.js ]
----------------
document.write(id);
----------------
-
6 名前: 元帥 : 2005/10/02 21:38 [URL]
- CGI等を使う方法。
環境変数から取得できます。
<script type="text/javascript" src="b.cgi?0001" ></script>
-
7 名前: れんこ : 2005/10/02 21:38
- きあらうむ様
元帥様
さらにご回答ありがとうございます。
なるべくスマートに記載したいので、CGI(PHP)で取得後に
JAVASCRIPTを吐き出すようにしようと思います。
ありがとうございました。