gpt4 book ai didi

angular - 在 IE11 中触发关键事件以获取 Angular

转载 作者:行者123 更新时间:2023-12-04 17:39:40 26 4
gpt4 key购买 nike

我正在尝试测试当 using 在输入中按下 Enter 时会发生特定的事件链。在我的测试文件中,我有一个简单的方法可以触发输入元素上的 Enter 键;

  function TriggerEnterEventOnInput() {
const event = new KeyboardEvent('keyup', { 'key': 'Enter' });
fixture.nativeElement.querySelector('input').dispatchEvent(event);
}

它在 Chrome 中工作正常,但如果你在 IE 中尝试这个,你会得到一个很好的错误提示;

Object doesn't support this action

这是因为 IE 不支持 KeyboardEvent 构造函数。有没有其他方法可以触发特定的按键事件,最好不使用像 JQuery 这样的插件?!

最佳答案

由于 KeyboardEvent 构造函数在 IE 上不可用,您可以使用以下适用于所有浏览器的代码段。

 TriggerEnterEventOnInput() {

let event: KeyboardEvent;

try {
event = new KeyboardEvent('keyup', { 'key': 'Enter', 'bubbles': true });
}
catch {
event = document.createEvent("KeyboardEvent");
event.initKeyboardEvent(
'keyup', // event name e.g. keyup, keydown, keypress
false, // canBubbleArg
false, // cancelableArg
null, // viewArg
'Enter', // your keyboard press value
0, // locationArg
'', // modifiersListArg
false, // repeat
'' // locale
);
}
fixture.nativeElement.querySelector('input').dispatchEvent(event);
}

Be aware though document.createEvent("KeyboardEvent") is deprecated. https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/initKeyEvent

关于angular - 在 IE11 中触发关键事件以获取 Angular ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55113175/

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