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

浏览器兼容性

另见