关键在于 contentWindow 属性

    1. let ueIframe = document.querySelector('iframe#ueditor_0');
    2. // 键盘快捷方式
    3. let pressedKeys = [];
    4. let quickKeys = {
    5. send: 'control,enter',
    6. close: 'alt,a',
    7. }
    8. ueIframe.contentWindow.addEventListener("keydown", function (e) {
    9. if (e.key.toLowerCase() == 'enter') {
    10. if (ue.isFocus()) {
    11. // e.preventDefault();
    12. }
    13. }
    14. if (!pressedKeys.includes(e.key.toLowerCase())) {
    15. pressedKeys.push(e.key.toLowerCase());
    16. }
    17. });
    18. ueIframe.contentWindow.addEventListener("keyup", function (e) {
    19. // console.log(e)
    20. // console.log(e.key.toLowerCase())
    21. switch (pressedKeys.toString()) {
    22. case quickKeys.send:
    23. console.log('按下了 发送 快捷键');
    24. sendMsgToPlayer();
    25. break;
    26. case quickKeys.close:
    27. console.log('按下了 关闭 快捷键');
    28. //当你在iframe页面关闭自身时
    29. var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
    30. parent.layer.close(index); //再执行关闭
    31. break;
    32. }
    33. pressedKeys = pressedKeys.filter((item, index, arr) => {
    34. return item != e.key.toLowerCase();
    35. });
    36. if(pressedKeys.length != 1 || pressedKeys[0] != 'control') {
    37. pressedKeys = [];
    38. }
    39. });