Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
This feature is not Baseline because it does not work in some of the most widely-used browsers.
invalidReason は HTMLGeolocationElement インターフェイスの読み取り専用プロパティで、関連付けられた <geolocation> 要素が無効である(ブロックされている)場合、その理由を表す列挙値を返します。
ブロッカーが <geolocation> 要素に対して有効な場合、その要素は無効とみなされます。これは、理由に応じて一時的または永続的に機能が利用できないことを意味します。
HTMLGeolocationElement.isValid プロパティで、その <geolocation> 要素が有効であるかどうかを問い合わせることができます。
要素に有効なブロッカーがない場合は空文字列 ("")、または次の値のいずれか(優先度順)です。
illegal_subframe<geolocation> が <fencedframe> 要素の中に含まれている場合。
永続的ブロッカーです。
unsuccesful_registration同じ文書に 3 つ以上の<geolocation>要素がある場合。
一時的ブロッカーです。
recently_attached<geolocation> 要素が最近 DOM に取り付けられたばかりである場合。
期限付きブロッカーです。
intersection_changed<geolocation> 要素が移動された場合。
期限付きブロッカーです。
intersection_out_of_viewport_or_clipped<geolocation> 要素がビューポートの外側にあるか、部分的に描画されている場合。
一時的ブロッカーです。
intersection_occluded_or_distorted<geolocation> 要素がビューポート内に完全に描画されているものの、何らかの方法で隠されている場合。例えば、他のコンテンツの背後に描画されている場合。
一時的ブロッカーです。
style_invalid<geolocation> 要素に、制限されたスタイルが適用されている場合(スタイルの制約を参照)。
一時的ブロッカーです。
これらの無効な理由が、優先度が高い順に掲載されています。 複数のブロッカーがアクティブな場合、返される invalidReason の値は、優先度が高い有効なブロッカーを表す値となります。
なお、前述の説明にはそれぞれの無効な理由に対応する「ブロッカー種別」が含まれており、次のいずれかとなります。
永続的ブロッカーこの <geolocation> 要素は、開発者がブロック要因の発生を止めるようコードを更新するまで、永続的に無効な状態です。
一時的ブロッカーこの <geolocation> 要素は、ブロック条件が解消されるまで無効です。その後、一時的なブロッカーは期限付きブロッカーに切り替わります。
期限付きブロッカーこの <geolocation> 要素は、短時間無効となった後、再び有効になります。
この例では、<geolocation> 要素に無効化させる異なるスタイルを適用するためのフォームコントロールを提供します。それぞれのスタイルセットが適用されるたびに、ブラウザーで設定された invalidReason を報告します。
まず、<geolocation> 要素と、後で <geolocation> 要素の上にレンダリングすることができる <div> 要素を設置します。
次に <p> 要素を提供し、それぞれのスタイルセットによって生成された invalidReason を表示できるようにします。
最後に <select> 要素を提供し、ユーザーが <geolocation> 要素を無効化する様々なスタイル設定の効果を選択できるようにします。
このスタイルでは、まず <geolocation> 要素に、位置指定ができるようにするため position 値を relative に、 z-index 値を 1 に設定します。
次に、#cover の <div> に position: absolute を適用し、インセットプロパティを使用して <geolocation> 要素の右側に配置します。同時に、z-index 値を 2 に設定します。これにより、<div> が <geolocation> 要素と同じ領域に配置された場合、<div> が上に表示されるようになります。
これで、ユーザーが様々な <select> の選択肢を指定した際に <geolocation> 要素に適用される 3 つのクラススタイルを定義します。.move-behind は #cover の <div> の背後に移動させ、.move-out は画面外に移動させ、.bad-contrast は色のコントラストを悪化させます。これら 3 つのスタイルはすべて <geolocation> 要素を無効な状態にします。
スクリプトでは、まず <geolocation>、<div>、<p>、<select> の各要素への参照を取得することから始めます。
次に、input イベントリスナーを <select> 要素に追加します。新しい選択値が選ばれた際、<geolocation> 要素の class 属性をその選択値に設定し、無効なクラススタイルを適用します。4 秒間のタイムアウト後、class を "" に戻し、<geolocation> 要素を有効な状態に復帰させます。
最後に、様々な選択値が選択された際に発生する検証状態の変化を報告するコードを追加します。まず、ページが最初に読み込まれた際に <p> のテキストコンテンツを有効な invalidReason を含めるよう設定します。次に、validationstatuschange イベントリスナーを <geolocation> 要素に追加します。検証ステータスが変更されるたびに、HTMLGeolocationElement.isValid を使用して <geolocation> 要素が有効であるかどうかを調べ、有効であれば <p> 要素のテキストコンテンツに確認メッセージを表示します。<geolocation> 要素が不正な場合、invalidReason を <p> 要素のテキストコンテンツに表示します。
このコードをライブ実行で確認してください(完全なソースコードも参照)。異なる無効化オプションを選べます。それぞれの場合でどの無効化理由が報告されるか確認してみてください。
| The HTML Geolocation Element # dom-activationblockersmixin-invalidreason |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2026年4月12日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.