JavaScriptのonhashchangeイベントの使い方をわかりやすく解説
URLのアンカー部分(#以降のハッシュ)が変更されると、onhashchangeイベントが発生します。このイベントを利用することで、ハッシュの変化を検知し、任意の処理を実行できます。
以下のコードを実行して、JavaScriptでonhashchangeイベントを実装する方法を確認してみましょう。
サンプルコード
<!DOCTYPE html>
<html>
<body onhashchange="newFunc">
<button onclick="functionChange()">クリックしてアンカーを変更</button>
<script>
function functionChange() {
location.hash = "about";
var hash = location.hash;
document.write("現在のアンカー部分: " + hash);
}
// アンカー部分が変更されたときに実行される
function newFunc() {
alert("アンカー部分が変更されました!");
}
</script>
</body>
</html>
コードの解説
この例では、body要素にonhashchange属性を設定し、ハッシュが変更された際にnewFunc関数が呼び出されるようになっています。
ボタンをクリックすると、location.hashが「about」に変更されます。この変更を検知してonhashchangeイベントが発生し、アラートで「アンカー部分が変更されました!」と表示されます。
このようにonhashchangeイベントを使えば、ページを再読み込みすることなく、URLのハッシュ変化に応じた動的な処理を実装できます。シングルページアプリケーション(SPA)などでも活用される便利なイベントです。
-
JavaScriptにおけるscreenYマウスイベントの役割とは?
JavaScriptにおいて、screenYマウスイベントプロパティは、イベントが発生した際のマウスポインタの垂直方向(Y軸)の座標を返します。 この値は、画面(モニター)の左上を原点とした絶対的な座標として取得されるため、ブラウザウィンドウの位置に関係なく、画面全体の中でのポインタ位置を知ることができます。なお、水平方向の座標を取得したい場合は、同じく用意されている screenX プロパティを使用します。 screenYの主な特徴 マウスポインタの垂直座標(Y座標)をピクセル単位で返す 画面の左上を基準点(0, 0)とする clientY とは異なり、ブラウザの表示領域ではなく画面全体が
-
JavaScriptのevery()メソッドとは?使い方とサンプルコードをわかりやすく解説
JavaScriptの配列(Array)メソッドである every() は、配列内のすべての要素が、指定した関数によるテスト条件を満たしているかどうかを判定するメソッドです。 判定結果はブール値(真偽値)として返されます。 すべての要素が条件を満たす場合 → true 1つでも条件を満たさない要素がある場合 → false every()メソッドのパラメータ every()メソッドでは、以下の2つの引数を使用できます。 callback − 各要素に対して実行されるテスト用の関数です。この関数が false を返すと、その時点で処理が中断され、every()全体が false を返します