You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HTMLElement.focus()在HTMLElement.onpointerdown事件中无效问题咨询

问题原因
  • document.getElementsByTagName() 方法返回的是HTMLCollection类数组对象,而非单个DOM元素。你直接对返回的p集合绑定onpointerdown事件,事件不会绑定到实际的<p>节点上,回调函数自然无法触发。
  • 即使正确绑定到<p>节点,pointerdown事件触发时浏览器的默认行为会处理当前点击上下文的焦点状态,会覆盖回调中手动设置的input焦点,导致focus()调用看起来不生效。而click事件是在pointerdown、pointerup全流程结束后才触发,此时浏览器默认焦点处理已经完成,不会覆盖手动设置的焦点,所以绑定click时可以正常生效。
解决方案

修正DOM元素获取逻辑,同时在pointerdown回调中阻止默认行为即可,修改后的jsfile.js代码如下:

let pList = document.getElementsByTagName("p");
let inputList = document.getElementsByTagName("input");

pList[0].onpointerdown = (e) => {
  // 阻止pointerdown默认行为,避免覆盖手动设置的焦点
  e.preventDefault();
  inputList[0].focus();
};

内容的提问来源于stack exchange,提问作者fodil yacine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 02:15:08