Javascript 将鼠标事件分派到iframe窗口?
我有两个兄弟div(绝对位置) ________________ | | |背向跳水| | _________|_____ | | | ||前分区| |_____| | | | |_____________| 经过一些努力,我设法将事件从一个部门发送到另一个部门。Javascript 将鼠标事件分派到iframe窗口?,javascript,html,iframe,Javascript,Html,Iframe,我有两个兄弟div(绝对位置) ________________ | | |背向跳水| | _________|_____ | | | ||前分区| |_____| | | | |_____________| 经过一些努力,我设法将事件从一个部门发送到另一个部门。 var backDiv=document.getElementById('back'); var frontDiv=
var backDiv=document.getElementById('back');
var frontDiv=document.getElementById('front');
var logger=document.getElementById('logger');
backDiv.addEventListener('mousedown',函数(e){
logger.innerHTML+=“返回
”;
});
frontDiv.addEventListener('mousedown',函数(e){
logger.innerHTML+=“front
”;
var e1=document.createEvent('MouseEvent');
e1.initMouseEvent(e.type、e.bubbles、e.cancelable、e.view、e.detail、e.screenX、e.screenY、e.clientX、e.clientY、e.ctrlKey、e.altKey、e.shiftKey、e.metaKey、e.button、null);
console.log(backDiv.contentWindow)
backDiv.contentWindow.document.body.dispatchEvent(e1);
},对);
这是你的答案。在我在后面放一个iframe,在前面放一个div之后 ________________ | | | BACK IFRAME | | _________|_____ | | | | | FRONT DIV | |_____| | | | |_____________| ________________ | | |后IFRAME| | _________|_____ | | | ||前分区| |_____| | | | |_____________| 我想将鼠标事件从前div分派到iframe中。
如何实现这一点?尝试向iframe添加父元素(比如容器),然后:
var event = document.createEvent('Event');
event.initEvent('CustomEvent', true, true);
event.targetFrame = "myTargetFrame";
element = parent.document.getElementById('container');
element.dispatchEvent(event);
并记住侦听父文档中激发的事件
parent.document.addEventListener('CustomEvent', function(e) {
if(e.targetFrame == "myTargetFrame") {
// codes here
}
});
由于您检查了目标帧,因此在多个帧触发的事件中不会有任何冲突
var event = document.createEvent('Event');
event.initEvent('CustomEvent', true, true);
event.targetFrame = "myTargetFrame";
element = parent.document.getElementById('container');
element.dispatchEvent(event);
parent.document.addEventListener('CustomEvent', function(e) {
if(e.targetFrame == "myTargetFrame") {
// codes here
}
});