解決済み

javascriptでクエリ文字列を取得できますか?

  • すぐに回答を!
  • 質問No.296849
  • 閲覧数637
  • ありがとう数1
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 47% (10/21)

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

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

  • 回答No.1

クエリだけ取り出すのは知りませんが、URLから切り出せばいいと思います。
function getQuery() {
url = new String(window.location);
query = new Array();
query = url.split("?");
if ( !!query[1] ) {
return query[1];
} else {
return "";
}
return query;
}
こんな感じかな。
補足コメント
godori

お礼率 47% (10/21)

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

if ( !!query[1] )

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

if (query[1] != "")

と同じ意味ですか?
投稿日時 - 2002-06-21 12:58:23
お礼コメント
godori

お礼率 47% (10/21)

重ね重ねなるほどです。
簡潔で、他のパターンにも応用できそうです。
ありがとうございました。
投稿日時 - 2002-06-21 13:32:14
年間ランキング2018

その他の回答 (全1件)

  • 回答No.2

>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];
としてテストしてみて下さい。
クエリを付けた場合は問題ないですが、クエリがない状態で実行させると、エラーになるはずです。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


感謝指数をマイページで確認!

ピックアップ

ページ先頭へ