gpt4 book ai didi

javascript - 如何以跨浏览器的方式触发焦点事件?

转载 作者:行者123 更新时间:2023-12-05 07:52:19 26 4
gpt4 key购买 nike

我发现很难在测试套件中仅使用 Javascript(没有 jQuery)手动触发 focusin 事件。

显然当浏览器没有焦点时(这只能在测试中发生)我想自己模拟 focusin 事件。

我发现 CustomEvent 构造函数有效

var event = new CustomEvent('focusin', { bubbles: true, cancelable: false });
this.dispatchEvent(event);

但我需要制作这个 IE9+。老式的方法似乎行不通。

var event = document.createEvent('Event');
event.initEvent('focusin', true, false);
this.dispatchEvent(event);

据我所知,这两种结构在功能上应该是等价的,但显然事实并非如此。当浏览器的窗口没有焦点时在 Chrome/Firefox/Safari 中测试。

第二个片段有什么问题吗?

最佳答案

如果元素有子元素,您可以通过在 firstElementChild 上调用 focus() 来执行此操作。

let el = document.getElementById('myDivId');
el.firstElementChild.focus();

这将触发对 div 的关注并向上冒泡到 div 的任何父级。

关于javascript - 如何以跨浏览器的方式触发焦点事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33890779/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com