首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >移动窗口时激活/停用事件

移动窗口时激活/停用事件
EN

Stack Overflow用户
提问于 2012-01-15 22:33:56
回答 1查看 2.4K关注 0票数 4

在我的Firefox扩展中,我试图跟踪窗口实际上是活动窗口的情况。为此,我在窗口中添加了以下两个监听器:

代码语言:javascript
运行
复制
  window.addEventListener("deactivate", function(event) { alert("deactivate"); }, false);
  window.addEventListener("activate", function(event) { alert("activate");  }, false);

基本上,一切都很好。当我在不同的窗口之间切换,或者最小化/最大化Firefox时,事件会像我预期的那样触发。但是,当我移动窗口时,这两个事件也会触发,即使它已经处于活动状态。当我开始移动窗口时,“停用”事件被激发;当我停止移动并释放鼠标按钮时,“激活”事件被激发。我不知道如何检测和忽略这种行为。直观地说,该窗口始终处于活动状态。

我尝试在处理“停用”事件之前检查是否按下了鼠标按钮。但是,向窗口添加"click“事件侦听器似乎不包括窗口的标题栏。有人知道我如何区分“真正”取消/激活窗口和移动窗口吗?提前谢谢你!

EN

回答 1

Stack Overflow用户

发布于 2012-03-06 07:17:35

您可以使用this answer来检测浏览器在屏幕上的位置。如果你一开始就这样做,你就可以比较它们是否在变化。

类似于页面加载时的情况:

代码语言:javascript
运行
复制
var x,
    y,
    win = window;

if(win.screenTop !== undefined) {
    x = win.screenleft;
    y = win.screenTop;
} else {
    x = win.screenX;
    y = win.screenY
}

并将这些值与事件触发时的当前值进行比较。

(请注意,这仅在窗口位置更改时起作用)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8870465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档