【问题标题】:Run content script loop only when tab is active仅在选项卡处于活动状态时运行内容脚本循环
【发布时间】:2016-05-28 20:08:29
【问题描述】:

我正在开发一个使用内容脚本运行循环的 chrome 扩展。在循环中运行的任务会消耗相当多的内存,并且当有很多打开的标签页时,它会影响浏览器的性能。

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

我正在使用onMessage.addListener 我的背景页面,然后我可以从内容脚本中sendMessage 并检查sender.tab.idchrome.tabs.getSelected。但由于 sendMessage 是异步的,我不得不使用 setInterval 进行“是否处于活动状态”检查以更新允许循环运行或不运行的变量。

有没有更好的方法来从内容脚本中查找选项卡是否处于活动状态?

【问题讨论】:

    标签: javascript google-chrome google-chrome-extension tabs


    【解决方案1】:

    看看Page Visibility API,我想检查一下

    if (document.visibilityState === "hidden")
    

    可以解决你的问题。

    我不确定你在循环中做了什么,如果只是为了检测标签状态,你也可以使用 visibilitychange 事件监听器。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-10
      • 2016-05-30
      • 2020-01-19
      • 2020-01-29
      • 1970-01-01
      • 2017-11-05
      • 2017-05-26
      • 1970-01-01
      相关资源
      最近更新 更多