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

javascriptでURLの末尾に付与した?以降の文字列、いわゆる"クエリ文字列"を取得する事は出来ますか?
出来る場合、構文を教えて下さい。

A 回答 (2件)

クエリだけ取り出すのは知りませんが、URLから切り出せばいいと思います。


function getQuery() {
url = new String(window.location);
query = new Array();
query = url.split("?");
if ( !!query[1] ) {
return query[1];
} else {
return "";
}
return query;
}
こんな感じかな。

この回答への補足

なるほどです。それでやって見ます。
ところで、申し訳ないのですが更に質問させて下さい。
教えて頂いたソースの5行目に

if ( !!query[1] )

とありますが、!!とはどういう意味ですか?

if (query[1] != "")

と同じ意味ですか?

補足日時:2002/06/21 12:58
    • good
    • 0
この回答へのお礼

重ね重ねなるほどです。
簡潔で、他のパターンにも応用できそうです。
ありがとうございました。

お礼日時:2002/06/21 13:32

>if ( !!query[1] )


>
>とありますが、!!とはどういう意味ですか?
>
>if (query[1] != "")
>
>と同じ意味ですか?

例えば、query[0]しか存在しない状態で
if (query[1] != "")
などとすると、エラーになります。
これは、存在しないquery[1]を参照しようとしたためです。
そこで、query[1]が存在するかしないか確認する必要があるため、
if (!query[1])
というように「!」付けて、query[1]の存在を否定した文にします。
つまり、これだと「もしquery[1]が存在しなければ」というif文になります。
なので、先の文は
if ( !query[1] ) {
return "";
} else {
return query[1];
}
でもよいわけです。
ただ、私の場合「もしquery[1]が存在すれば」というif文したかったのでので、さらにif文の内容を逆転させるために「!」を2つつけて「!!」にしたわけです。
if ( !!query[1] )
は、「もしquery[1]が存在すれば」というif文になります。

実際に、
if ( !!query[1] )
で始まるif文をなくして、単に
return query[1];
としてテストしてみて下さい。
クエリを付けた場合は問題ないですが、クエリがない状態で実行させると、エラーになるはずです。
    • good
    • 0

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