【问题标题】:Chrome AppWindow Capture Mouse EventChrome AppWindow 捕获鼠标事件
【发布时间】:2016-04-19 06:54:55
【问题描述】:

Chrome 应用程序窗口最初没有获得焦点。当您单击窗口区域时,它会获得焦点。但是,此时未捕获鼠标单击事件。我想知道如何在窗口获得焦点时捕获鼠标事件。我的意思是鼠标单击事件,它将窗口从背景带到前台。

【问题讨论】:

  • 使用 window.onfocus 事件。显示代码。
  • 焦点事件根本不包含鼠标位置。在这种情况下如何获得鼠标位置?此外,点击事件可能不会触发焦点事件。我无法区分它是通过单击窗口触发的还是其他什么触发的。
  • 是的。将其与单击事件结合使用。在这里你去:jsfiddle.net/MarcGuiselin/7vyey4Ld/1尝试点击红色结果页面几次,然后点击其他地方并再次点击。
  • 您只需要这些吗?
  • 如果您得到想要的答案,请将问题标记为已完成。

标签: google-chrome-extension google-chrome-app


【解决方案1】:

将 window.onfocus 事件与 click 事件结合使用。

给你:jsfiddle.net/MarcGuiselin/7vyey4Ld/1

var justfocused=false;//true for 500ms after the page was focused
document.body.onclick=function(e){//onclick event always occurs after onfocus event
  if(justfocused){//if our window was just focused
    justfocusedevent(e);
    justfocused=false;//user has to refocus this tab for this function to run again
  }else{
    console.log("just a regular click");
  }
}

window.onfocus=function(){
  justfocused=true;
  setTimeout(function(){justfocused=false;},500);//reset just in case
  console.log("window focused");
}

function justfocusedevent(e){
    console.log("we just focused on this window at: ("+e.clientX+","+e.clientY+")");
}

尝试点击红色的结果页面几次,然后点击其他地方使结果窗口失去焦点,然后再次点击。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-14
    • 2016-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多