栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JavaScript有没有一种方法可以检测浏览器窗口当前是否未激活?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaScript有没有一种方法可以检测浏览器窗口当前是否未激活?

自从最初编写此答案以来,新的规范已达到推荐状态。现在,页面可见性API使我们能够更准确地检测页面何时向用户隐藏。

document.addEventListener("visibilitychange", onchange);

当前的浏览器支持:

  • hrome 13+
  • Internet Explorer 10+
  • Firefox 10+
  • Opera 12.10+ [read notes]

以下代码会退回到不兼容浏览器中不太可靠的模糊/聚焦方法:

(function() {  var hidden = "hidden";  // Standards:  if (hidden in document)    document.addEventListener("visibilitychange", onchange);  else if ((hidden = "mozHidden") in document)    document.addEventListener("mozvisibilitychange", onchange);  else if ((hidden = "webkitHidden") in document)    document.addEventListener("webkitvisibilitychange", onchange);  else if ((hidden = "msHidden") in document)    document.addEventListener("msvisibilitychange", onchange);  // IE 9 and lower:  else if ("onfocusin" in document)    document.onfocusin = document.onfocusout = onchange;  // All others:  else    window.onpageshow = window.onpagehide    = window.onfocus = window.onblur = onchange;  function onchange (evt) {    var v = "visible", h = "hidden",        evtMap = {          focus:v, focusin:v, pageshow:v, blur:h, focusout:h, pagehide:h        };    evt = evt || window.event;    if (evt.type in evtMap)      document.body.className = evtMap[evt.type];    else      document.body.className = this[hidden] ? "hidden" : "visible";  }  // set the initial state (but only if browser supports the Page Visibility API)  if( document[hidden] !== undefined )    onchange({type: document[hidden] ? "blur" : "focus"});})();

onfocusin
和IE 9及更低版本
onfocusout
是必需的focus,而其他所有语言都使用
onfocus
onblur
(iOS除外,后者使用
onpageshow
和)
onpagehide



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/376962.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号