当一个窗口悬停在另一个窗口上时会触发哪个事件?

时间:2016-12-07 06:47:52

标签: javascript jquery jquery-ui

我有非常奇怪的要求,比如有两个浏览器窗口。

我想在第一个窗口拖动此窗口时关闭第二个窗口。

首先这可能吗?

第二,如果是,那么在哪个事件?

所以我可以在那次活动中做我的愿望。

现在我已经写了这段代码

$(document).on('mouseover', function () {
 console.log('done'); 
});

所以当我在第一个窗口看到另一个窗口时我可以得到这个事件,但是这个事件也没有发生,因为在拖动时拖动窗口激活,这个窗口没有激活。

感谢任何帮助。

由于

2 个答案:

答案 0 :(得分:0)

由于您尚未共享任何有关子窗口的代码,因此我可以建议您:

  1. var cwin = window.open()创建一个子窗口。
  2. 现在您可以用来获取窗口的 X 位置。
  3. 您可以使用setInterval()检查该窗口的位置。
  4. 然后您可以检查 X 位置是否在父窗口的宽度之间。
  5. 您可以在$(cwin.parent.document).trigger('mouseover')
  6. 触发cwin.close();关闭它

答案 1 :(得分:0)

您必须检查两个窗口的尺寸和位置。下面的代码段在这里不起作用,因为StackOverflow会阻止弹出窗口,所以在其他地方尝试。

var a;
var b;

function openA(){
    a = window.open("","w1","width=250,height=150,top=0");
    a.document.title = "A";
}

function openB(){
    b = window.open("","w2","width=250,height=150,top=200,left=400");
    b.document.title = "B";
}

setInterval(function(){
    // If both window is not closed
    if (a && !a.closed && b && !b.closed){
        // If both window overlaps
        if (
            a.screenX + a.outerWidth > b.screenX &&
            a.screenX < b.screenX + b.outerWidth &&
            a.screenY + a.outerHeight > b.screenY &&
            a.screenY < b.screenY + b.outerWidth
        ){
            b.close();
        }
    }
},1000);
<button onclick="openA()">Open window A</button>
<button onclick="openB()">Open window B</button>