async function keyDownHandler(e) { e.preventDefault(); var element = Array.from(document.querySelectorAll('div.dialog')) .filter(e => e.style.visibility == 'visible') .map(e => ({ element: e, zIndex: parseInt(e.style.zIndex) })) .sort((a, b) => b.zIndex - a.zIndex) .map(e => e.element)[0]; if(element) { await window.dialogObjects .find(d => d.element == element) .dialogObject .invokeMethodAsync('KeyHandler', e.key); } } window.onload = () => document.onkeydown = keyDownHandler;