Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将鼠标事件分派到iframe窗口?_Javascript_Html_Iframe - Fatal编程技术网

Javascript 将鼠标事件分派到iframe窗口?

Javascript 将鼠标事件分派到iframe窗口?,javascript,html,iframe,Javascript,Html,Iframe,我有两个兄弟div(绝对位置) ________________ | | |背向跳水| | _________|_____ | | | ||前分区| |_____| | | | |_____________| 经过一些努力,我设法将事件从一个部门发送到另一个部门。 var backDiv=document.getElementById('back'); var frontDiv=

我有两个兄弟div(绝对位置)

________________ | | |背向跳水| | _________|_____ | | | ||前分区| |_____| | | | |_____________| 经过一些努力,我设法将事件从一个部门发送到另一个部门。

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
    }
});