EditContext:compositionstart 事件

可用性有限

此功能不是基线功能,因为它在一些最广泛使用的浏览器中不起作用。

实验性:这是一个 实验性技术
在生产环境中使用此功能之前,请仔细查看 浏览器兼容性表格

EditContext 接口的 compositionstart 事件在使用 输入法编辑器 (IME) 窗口开始合成时触发。

语法

在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。

js
addEventListener("compositionstart", (event) => {});

oncompositionstart = (event) => {};

示例

使用 compositionstart 更改可编辑区域的边框

在以下示例中,当 compositionstart 事件触发时,可编辑区域的边框设置为红色,当 compositionend 事件触发时,边框恢复为黑色。请注意,此示例中的事件侦听器回调仅在使用 IME 窗口或其他特定于平台的编辑 UI 表面合成文本时才会被调用。

css
#text-editor {
  border: 1px solid black;
}
#text-editor.is-composing {
  border-color: red;
}
html
<div id="text-editor"></div>
js
const editorElement = document.getElementById("text-editor");
const editContext = new EditContext();
editorElement.editContext = editContext;

editContext.addEventListener("compositionstart", (event) => {
  editorElement.classList.add("is-composing");
});

editContext.addEventListener("compositionend", (event) => {
  editorElement.classList.remove("is-composing");
});

规范

规范
EditContext API
# dom-editcontext-oncompositionstart

浏览器兼容性

BCD 表格仅在启用了 JavaScript 的浏览器中加载。