Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 仅当选项卡处于活动状态时运行内容脚本循环_Javascript_Google Chrome_Google Chrome Extension_Tabs - Fatal编程技术网

Javascript 仅当选项卡处于活动状态时运行内容脚本循环

Javascript 仅当选项卡处于活动状态时运行内容脚本循环,javascript,google-chrome,google-chrome-extension,tabs,Javascript,Google Chrome,Google Chrome Extension,Tabs,我正在开发一个chrome扩展,它使用内容脚本来运行循环。循环中运行的任务可能会消耗相当多的内存,当有许多打开的选项卡时,会影响浏览器性能 我希望仅在选项卡处于活动状态时运行循环 我正在使用onMessage.addListenermy background page,然后我可以从内容脚本中sendMessage,并对照chrome.tabs.getSelected查看sender.tab.id。但由于sendMessage是异步的,因此我不得不使用setInterval进行“is tab ac

我正在开发一个chrome扩展,它使用内容脚本来运行循环。循环中运行的任务可能会消耗相当多的内存,当有许多打开的选项卡时,会影响浏览器性能

我希望仅在选项卡处于活动状态时运行循环

我正在使用
onMessage.addListener
my background page,然后我可以从内容脚本中
sendMessage
,并对照
chrome.tabs.getSelected查看
sender.tab.id
。但由于sendMessage是异步的,因此我不得不使用
setInterval
进行“is tab active”检查,以更新允许循环运行或不运行的变量

有没有更好的方法可以从内容脚本中确定选项卡是否处于活动状态?

请查看,我想检查一下

if (document.visibilityState === "hidden")
我能解决你的问题

我不确定您在循环中做了什么,如果只是为了检测选项卡状态,您也可以使用visibilitychange事件侦听器

document.addEventListener("visibilitychange", function () {
  if (document.hidden) {
    //...
  }
}, false);