关键在于 contentWindow 属性
let ueIframe = document.querySelector('iframe#ueditor_0');
// 键盘快捷方式
let pressedKeys = [];
let quickKeys = {
send: 'control,enter',
close: 'alt,a',
}
ueIframe.contentWindow.addEventListener("keydown", function (e) {
if (e.key.toLowerCase() == 'enter') {
if (ue.isFocus()) {
// e.preventDefault();
}
}
if (!pressedKeys.includes(e.key.toLowerCase())) {
pressedKeys.push(e.key.toLowerCase());
}
});
ueIframe.contentWindow.addEventListener("keyup", function (e) {
// console.log(e)
// console.log(e.key.toLowerCase())
switch (pressedKeys.toString()) {
case quickKeys.send:
console.log('按下了 发送 快捷键');
sendMsgToPlayer();
break;
case quickKeys.close:
console.log('按下了 关闭 快捷键');
//当你在iframe页面关闭自身时
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
parent.layer.close(index); //再执行关闭
break;
}
pressedKeys = pressedKeys.filter((item, index, arr) => {
return item != e.key.toLowerCase();
});
if(pressedKeys.length != 1 || pressedKeys[0] != 'control') {
pressedKeys = [];
}
});