VirtualKeyboard: show() 方法

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

實驗性: 這是一項實驗性技術
在生產中使用此技術之前,請仔細檢查瀏覽器相容性表格

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

show() 方法是 VirtualKeyboard 介面的一個方法,用於以程式設計方式顯示螢幕上的虛擬鍵盤。當頁面需要實現自己的虛擬鍵盤邏輯時,這非常有用,尤其是在 contenteditable 元素上使用 virtualkeyboardpolicy 屬性時,具體請參見 控制 contenteditable 元素上的虛擬鍵盤

此方法僅在當前聚焦的元素是表單控制元件(例如 <input><textarea> 元素)時有效,或者當聚焦的元素是 contenteditable 元素,並且當前聚焦元素的 virtualKeyboardPolicy 屬性設定為 manualinputmode 未設定為 none 時有效。

show() 方法始終返回 undefined,並觸發一個 geometrychange 事件。

語法

js
show()

引數

無。

返回值

Undefined。

示例

以下程式碼段展示瞭如何使用 virtualkeyboardpolicy 屬性來阻止瀏覽器在單擊或點按時顯示虛擬鍵盤。該程式碼還使用 navigator.virtualKeyboard.show()navigator.virtualKeyboard.hide() 方法在單擊按鈕時顯示和隱藏虛擬鍵盤。

html
<div contenteditable virtualkeyboardpolicy="manual" id="editor"></div>
<button id="edit-button">Edit</button>
js
if ("virtualKeyboard" in navigator) {
  const editor = document.getElementById("editor");
  const editButton = document.getElementById("edit-button");
  let isEditing = false;

  editButton.addEventListener("click", () => {
    if (isEditing) {
      navigator.virtualKeyboard.hide();
      editButton.textContent = "Edit";
    } else {
      editor.focus();
      navigator.virtualKeyboard.show();
      editButton.textContent = "Save changes";
    }

    isEditing = !isEditing;
  });
}

規範

規範
VirtualKeyboard API
# dom-virtualkeyboard-show

瀏覽器相容性

另見