2009年9月20日日曜日

JavaScript で URL からフラグメント以外を取得

1. URL の # 以降の文字列

ウェブページで、特定の場所にアンカーを指定するには、要素の属性に id または name を指定する。これにより、特定の場所へ # を使いリンクを貼ることができる。

この # 以降の文字列は、フラグメント識別子と言う。

フラグメント識別子とは - はてなキーワード によると、

id属性やa要素のname属性で指定するアレ」の正式名称。

例えば、http://ja.wikipedia.org/wiki/Javascript#.E6.AD.B4.E5.8F.B2 からフラグメントを取得するには、

location.hash

逆に、フラグメント以外を取得するには、

location.protocol + "//" + location.hostname + location.pathname

 

2. クエリ文字列

クエリ文字列とは、URL に含まれる `?’ 以降の文字列のこと。

「クエリー文字列」とは:ITpro によると、

URLの「?」以降に格納する文字列。Webアプリケーションでは,クエリー文字列をよく利用する。例えば,クエリー文字列にユーザー識別子を格納してセッションを維持したり,データベースを検索するための文字列を指定する。

例えば、Google 検索をした後に、

location.search

を実行すると、クエリ文字列を取得できる。それにしても、何でプロパティ名が search なんだろう?

location.search では ? を含めた文字列が返される。? を取り除きたい場合は、

location.search.substring(1)