URLパラメータ値でコンテンツの表示・非表示を切り替えます
URLからパラメータを取得する
この関数は、URLからパラメータを取得します。
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function() {
// URLからパラメータを取得する関数
function getParameterByName(name) {
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(window.location.href);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
}
</script>
nameパラメータには取得したいパラメータの名前を指定します。nameの中に含まれる特殊文字「[」および「]」をエスケープします。- 正規表現パターンを作成します。パターンは
?または&で始まり、nameの後に=が続き、その後にパラメータの値が続くか、&または#または行の末尾 ($) が続くという形式です。 regex.exec(window.location.href)で現在のページのURLに対して正規表現を適用し、パラメータと値の結果を取得します。- もし結果が得られなかった場合は
nullを返します。 - もし値がない場合は空文字列
''を返します。 - パラメータの値がある場合は、
decodeURIComponentを使ってURLエンコードを解除し、+をスペースに置き換えてから返します。
この関数を使うと、例えば以下のようなURLがあった場合に、指定したパラメータの値を取得することができます。
https://example.com/page?name=John&age=25
例えば、name パラメータの値を取得する場合は、以下のように呼び出します。
var nameValue = getParameterByName('name');
console.log(nameValue); // 'John'
コンテンツの表示・非表示を切り替える
パラメータの値を取得して、コンテンツの表示・非表示を切り替えます。
// パラメータの値を取得
var showContent = getParameterByName('show');
// コンテンツの表示・非表示を切り替える
if (showContent === 'true') {
$('.content').show();
} else {
$('.content').hide();
}
});
</script>
<style>
.content {
display: none;
}
</style>
完成形
スクリプトの完成形です。
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function() {
// URLからパラメータを取得する関数
function getParameterByName(name) {
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(window.location.href);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
// パラメータの値を取得
var showContent = getParameterByName('show');
// コンテンツの表示・非表示を切り替える
if (showContent === 'true') {
$('.content').show();
} else {
$('.content').hide();
}
});
</script>
<style>
.content {
display: none;
}
</style>
パラメータにshow=trueがあればコンテンツを表示、なければ非表示になります。


まとめ
このようにして、URLから指定したパラメータの値を取得して、パラメータに応じてページの状態を変化させることができます。



