1. ホーム
  2. jquery

[解決済み] URLのハッシュ位置の取得とjQueryでの利用

2022-05-18 01:30:40

質問

現在のページのURLのハッシュの後の値を取得し、新しい関数でこれを適用できるようにしたい。

URLは以下のようになります。

www.example.com/index.html#foo

そして、これを次のようなコード部分と組み合わせて使いたいと思います。

$('ul#foo:first').show();

これを取得し、変数に変換して、2番目のコードで使用することができる何らかの方法があると仮定/希望しています。

どのように解決するのですか?

編集後記 以下のアプローチでは 深刻なセキュリティ上の影響があります。 であり、使用している jQuery のバージョンによっては、ユーザーを XSS 攻撃にさらす可能性があります。詳細については、この回答のコメントで可能性のある攻撃についての議論を参照するか、または Security Stack Exchangeにあるこの説明 .

を使用することができます。 location.hash プロパティを使って、現在のページのハッシュを取得することができます。

var hash = window.location.hash;
$('ul'+hash+':first').show();

なお、このプロパティにはすでに # 記号が含まれていることに注意してください。

実は :first を使っているので、擬似セレクタは必要ありません。 ID セレクタ は、IDが 一意 であることが前提です。

URLの文字列からハッシュを取得したい場合には String.substring というメソッドを使います。

var url = "http://example.com/file.htm#foo";
var hash = url.substring(url.indexOf('#')); // '#foo'

アドバイスです。 ユーザが を変更することができます。 を変更することができるので、使用する前にハッシュをチェックする必要があります。