やり方をいつもすぐに忘れてしまうので、備忘録として書いておく。今更感満載だけど、未だに需要があるので。
[MDN の KeyboardEvent.initKeyboardEvent()]
(https://developer.mozilla.org/ja/docs/Web/API/KeyboardEvent/initKeyboardEvent)ページではダメ。
const keyevent = {
keydown: 'keydown',
keypress: 'keypress',
keyup: 'keyup'
};
const key_ie = {
Backspace: 'Backspace',
Tab: 'Tab',
Enter: 'Enter',
Shift: 'Shift',
Control: 'Control',
Escape: 'Esc',
Space: 'Spacebar',
End: 'End',
Home: 'Home',
ArrowLeft: 'Left',
ArrowUp: 'Up',
ArrowRight: 'Right',
ArrowDown: 'Down',
Delete: 'Del',
};
// 半角スペースで区切る
const modifiers = 'Alt Control Shift';
const event = document.createEvent('KeyboardEvent');
// https://technet.microsoft.com/en-us/windows/ff975297(v=vs.60)
event.initKeyboardEvent(
keyevent.keydown,
true,
true,
document.defaultView,
key_ie.Tab,
0,
modifiers,
true,
''
);
elem.dispatchEvent(event);