设置焦点后,如何将光标放入输入框



我在网站www.RedBubble.com上,目的是使用javascript将活动光标放置在顶部的搜索框中。我可以通过代码让它聚焦,弹出窗口就会出现。但在焦点工作后,我似乎无法让光标显示在框内。

我运行以下命令:

let searchbar = document.querySelector('input[name="query"]');
const focusEvent = new Event('focus');
const selectEvent = new Event('select');
searchbar.dispatchEvent(focusEvent);
searchbar.dispatchEvent(select);

这导致搜索输入框获得焦点,但光标在输入字段内始终不闪烁。如果我在页面上手动单击选项卡或在框中手动单击,我会在框中获得焦点和光标。但我似乎无法通过编程重新创建它。

我也尝试在开发人员控制台之外这样做,以防这是窃取焦点的原因,但无论开发人员控制台是否处于活动状态,我都会得到相同的结果。

这里接受的答案解释了调度事件不会生成与调度事件相关联的默认操作。

你需要把焦点称为显性。

let searchbar = document.querySelector('input[name="query"]');
searchbar.focus();
<input name="query"/>

对于光标焦点,请尝试下面的代码,它可能会有所帮助:

let searchbar = document.querySelector('input[name="query"]');
searchbar.focus();

最新更新