检测哪个标签/窗口在谷歌浏览器中被聚焦
Detect which tab/window is being focused in Google Chrome
我正在制作一个Chrome扩展程序,其中包含一个执行以下操作的内容脚本:
- 内容脚本注入到每个页面中
- 每 5 秒定期调用函数"a"
- 如果页面处于焦点中,则调用函数"B"。
理想情况下,应为每个选项卡调用函数"a",但仅针对聚焦的选项卡调用函数"b"。
我已经研究了几种方法,我发现的最接近的解决方案是:如何使用Javascript检测标签页何时在Chrome中聚焦?
但是,当我尝试使用outerHeight/innerHeight方法时,它给了我一些非常奇怪的结果。当窗口失焦时,我得到 0 表示外高。这对我来说似乎更像是一个错误,所以我不确定我是否可以使用它来确定选项卡是否失焦。
有没有人对此有很好的解决方案?
不知道只有内容脚本的解决方案,但这可以在后台页面的帮助下轻松完成:
content_script.js:
function task() {
chrome.extension.sendRequest("is_selected", function(isSelected) {
if(isSelected) {
//this tab in focus
} else {
//not in focus
}
});
}
setInterval(task, 5000);
背景.html:
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
if(request == "is_selected") {
chrome.tabs.getSelected(null, function(tab){
if(tab.id == sender.tab.id) {
sendResponse(true); //in focus (selected)
} else {
sendResponse(false); //not in focus
}
});
}
});
相关文章:
- 为什么可以't我在谷歌浏览器中返回cookie
- 谷歌浏览器没有阅读Jsfidle程序
- Javascript字母选择没有'我不能在谷歌浏览器上工作
- 我的时间倒计时脚本在谷歌浏览器中工作正常,但在其他浏览器中打开时它显示为南楠
- 列出谷歌浏览器中安装的所有扩展程序
- 谷歌浏览器模式正则表达式在使用setCustomValidity动态创建表单时不起作用
- 谷歌浏览器扩展程序画布图标
- 谷歌浏览器控制台,打印图像
- 为什么我的谷歌浏览器扩展程序在谷歌浏览器版本 41.0.2272.89 中不起作用
- 多个 socket.io 客户端连接不起作用(谷歌浏览器,火狐浏览器)
- 对象在谷歌浏览器中没有方法“焦点”
- 谷歌地图API v3自定义光标在谷歌浏览器中的热点
- 我们如何在谷歌浏览器的每个页面上打印表格标题
- 谷歌浏览器中的getUserMedia
- 在谷歌浏览器中,标签之间最快的通信是什么
- 在谷歌浏览器中用程序固定一个标签
- 为什么javascript在谷歌浏览器上不起作用
- window.打开谷歌浏览器中的选项卡和窗口
- 如何在谷歌浏览器中使用step-int和step-over'用于调试Java脚本的Web检查器
- 检测哪个标签/窗口在谷歌浏览器中被聚焦