A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://developer.mozilla.org/ja/docs/Web/API/KeyboardEvent/getModifierState below:

KeyboardEvent: getModifierState() メソッド - Web API

KeyboardEvent: getModifierState() メソッド

Baseline Widely available *

KeyboardEvent.getModifierState() メソッドは、指定された修飾キーの現在の状態を返します。修飾キーが有効な場合(すなわち修飾キーが押されているかロックされている場合)は true、そうでなければ false になります。

構文 引数
key

修飾キーの値。値は修飾キーを表す KeyboardEvent.key 値のいずれか、または文字列 "Accel" 非推奨; でなければなりません。これは大文字と小文字を区別します。

返値

論理値です。

Firefox での修飾キー

Firefox で getModifierState() が true を返すときです。

Windows Linux (GTK) Mac Android 2.3 Android 3.0 or later "Alt" Alt キーか AltGr キーが押されている Alt キーが押されている ⌥ Option キーが押されている Alt キーか option キーが押されている "AltGraph"

Alt と Ctrl の両方のキーが押されている、または AltGr キーが押されている

Level 3 Shift キー(または Level 5 Shift キー)が押されている ⌥ Option キーが押されている ❌ 未対応 ❌ 未対応 "CapsLock" ⇪ Caps Lock の LED がオンになっている間 ❌ 未対応 CapsLock がロックされている間 "Control" Ctrl キーか AltGr キーが押されている Ctrl キーが押されている control キーが押されている menu キーが押されている Ctrl キー、 control キー、 menu キーの何れかが押されている "Fn" ❌ 未対応 ❌ 未対応 ❌ 未対応 ❌ 未対応 Function キーが押されているが、どのキーが修飾状態をアクティブにするのかが分からない。 Mac のキーボードの Fn キーでは、このアクティブな状態は発生しません。 "FnLock" ❌ 未対応 ❌ 未対応 ❌ 未対応 ❌ 未対応 ❌ 未対応 "Hyper" ❌ 未対応 ❌ 未対応 ❌ 未対応 ❌ 未対応 ❌ 未対応 "Meta" ⊞ Windows ロゴ キーが押されている(Firefox 118 以降) Meta キーが押されている ⌘ Command キーが押されている ❌ 未対応 ⊞ Windows ロゴ キーまたは command キーが押されている "NumLock" Num Lock の LED がオンになっている間 A key on numpad pressed ❌ 未対応 NumLock がロックされている間 "OS" ⊞ Windows ロゴ キーが押されている(Firefox 118 より前) Super キーまたは Hyper キーが押されている(ふつう、 ⊞ Windows ロゴ キーに割り当てられている) ❌ 未対応 ❌ 未対応 ❌ 未対応 "ScrollLock" Scroll Lock の LED がオンになっている間 Scroll Lock の LED がオンになっている間、ただしふつうはプラットフォームが対応していない ❌ 未対応 ❌ 未対応 ScrollLock がロックされている間 "Shift" ⇧ Shift キーが押されている "Super" ❌ 未対応 ❌ 未対応 ❌ 未対応 ❌ 未対応 ❌ 未対応 "Symbol" ❌ 未対応 ❌ 未対応 ❌ 未対応 ❌ 未対応 ❌ 未対応 "SymbolLock" ❌ 未対応 ❌ 未対応 ❌ 未対応 ❌ 未対応 ❌ 未対応 "Accel" 仮想修飾子

メモ: "Accel" 仮想修飾子は、 DOM3 Events 仕様の現在のドラフトでは、事実上非推奨とされています。

getModifierState() は "Accel" という名前の非推奨の仮想修飾子も受け入れます。event.getModifierState("Accel") は KeyboardEvent.ctrlKey または KeyboardEvent.metaKey の少なくともどちらかが true である場合に true を返します。

古い実装や古い仕様では、ショートカットキーの代表的な修飾キーで修飾されていたときに true を返していました。例えば、 Windows では、 Ctrl キーを押すと、trueを返すことがあります。 しかし、 Mac では、 ⌘ Command キーを押すと、 true を返すかもしれません。 どの修飾キーで true を返すかは、プラットフォーム、ブラウザー、ユーザーの設定に依存することに注意してください。例えば、 Firefox の場合、 "ui.key.accelKey" という設定項目でカスタマイズすることができます。

例
function handleKeyboardEvent(event) {
  // Ignore if following modifier is active.
  if (
    event.getModifierState("Fn") ||
    event.getModifierState("Hyper") ||
    event.getModifierState("OS") ||
    event.getModifierState("Super") ||
    event.getModifierState("Win") /* hack for IE */
  ) {
    return;
  }

  // Also ignore if two or more modifiers except Shift are active.
  if (
    event.getModifierState("Control") +
      event.getModifierState("Alt") +
      event.getModifierState("Meta") >
    1
  ) {
    return;
  }

  // Handle shortcut key with standard modifier
  if (event.getModifierState("Accel")) {
    switch (event.key.toLowerCase()) {
      case "c":
        if (event.getModifierState("Shift")) {
          // Handle Accel + Shift + C
          event.preventDefault(); // consume the key event
        }
        break;
      case "k":
        if (!event.getModifierState("Shift")) {
          // Handle Accel + K
          event.preventDefault(); // consume the key event
        }
        break;
    }
    return;
  }

  // Do something different for arrow keys if ScrollLock is locked.
  if (
    (event.getModifierState("ScrollLock") ||
      event.getModifierState("Scroll")) /* hack for IE */ &&
    !event.getModifierState("Control") &&
    !event.getModifierState("Alt") &&
    !event.getModifierState("Meta")
  ) {
    switch (event.key) {
      case "ArrowDown":
      case "Down": // hack for IE and old Firefox
        event.preventDefault(); // consume the key event
        break;
      case "ArrowLeft":
      case "Left": // hack for IE and old Firefox
        // Do something different if ScrollLock is locked.
        event.preventDefault(); // consume the key event
        break;
      case "ArrowRight":
      case "Right": // hack for IE and old Firefox
        // Do something different if ScrollLock is locked.
        event.preventDefault(); // consume the key event
        break;
      case "ArrowUp":
      case "Up": // hack for IE and old Firefox
        // Do something different if ScrollLock is locked.
        event.preventDefault(); // consume the key event
        break;
    }
  }
}

メモ: この例は .getModifierState() を "Alt", "Control", "Meta", "Shift" で使用していますが、 event.altKey, event.ctrlKey, event.metaKey, event.shiftKey の方がよりお勧めです。

仕様書 ブラウザーの互換性 関連情報

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4