プロが教える店舗&オフィスのセキュリティ対策術

URLからクエリを取得し、そのクエリを表示するJavaScriptを書きました。

例えば、
http://www.hoge.com/hoge.html?hoge=moge
にアクセスすると、画面上に
「hoge=moge」
と表示されます。

スクリプトコードは以下のようになっています。

<script type="text/javascript">
QueryString = location.search.split("?");
if ( QueryString.length > 0 ) {
document.write(QueryString[1]);
}
</script>

ところが、
http://www.hoge.com/hoge.html
http://www.hoge.com/hoge.html?
などのクエリがないURLにアクセスすると、
「undefined」
が表示されてしまいます。

これでは都合が悪いです。
undefinedを表示させないように(何も表示させないように)するにはどうすればいいでしょうか?

使用環境はWindows7/Chromeです。

よろしくお願いします。

A 回答 (1件)

やり方は大きく2つ



ひとつはsplitする前にチェックする
<script>
var q = location.search.match(/\?./)?location.search.split("?")[1]:"";
alert(q);
</script>

もうひとつはsplitした結果を元に出力をかえる
<script>
var q = location.search.split("?")[1];
if(typeof q=="undefined") q="";
alert(q);
</script>
    • good
    • 0
この回答へのお礼

ありがとうございました。
2番目を選択しました。
自分の例だと、下記のような感じでいけました。

<script type="text/javascript">
QueryString = location.search.split("?")[1];
if (typeof QueryString=="undefined") {
QueryString = "";
}else{
document.write(QueryString);
}
</script>

お礼日時:2012/07/16 03:53

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