MathMLElement:focus() 方法

Baseline 已广泛支持

此功能已成熟,并且在众多设备和浏览器版本上都能正常工作。自 2023 年 1 月以来,它已在各浏览器中可用。

MathMLElement 接口的 focus() 方法将焦点设置到指定的 MathML 元素上(如果该元素可以获取焦点)。获取焦点的元素是默认接收键盘和类似事件的元素。

默认情况下,浏览器会在元素获取焦点后将其滚动到视图中,并且可能会提供获取焦点的元素的可见指示(通常是通过在元素周围显示“焦点环”)。提供了参数选项来禁用默认滚动并强制在元素上显示可见指示。如果你在 mousedown 事件处理程序中调用 focus(),则必须调用 event.preventDefault() 以防止焦点离开 MathMLElement

语法

js
focus()
focus(options)

参数

options 可选

用于控制焦点设置过程各个方面的对象。此对象可能包含以下属性

preventScroll 可选

一个布尔值,指示浏览器是否应滚动文档以将新获得的焦点元素带入视口。preventScroll 的值为 false(默认值)表示浏览器在聚焦元素后会将其滚动到视口。如果将 preventScroll 设置为 true,则不会发生滚动。

返回值

无(undefined)。

示例

使 MathML 元素获取焦点

此示例使用一个按钮将焦点设置到 MathML 圆形元素上。

HTML

html
<div>
  <math>
    <msup id="myMath" tabindex="0">
      <mi>x</mi>
      <mn>2</mn>
    </msup>
  </math>
  <button id="focusButton">Focus the Math</button>
</div>

JavaScript

js
const mathElement = document.getElementById("myMath");

document.getElementById("focusButton").addEventListener("click", () => {
  mathElement.focus();
});

结果

规范

规范
HTML
# dom-focus-dev

浏览器兼容性

另见