程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了仅在一个 Chrome 标签页中运行内容脚本大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决仅在一个 Chrome 标签页中运行内容脚本?

开发过程中遇到仅在一个 Chrome 标签页中运行内容脚本的问题如何解决?下面主要结合日常开发的经验,给出你关于仅在一个 Chrome 标签页中运行内容脚本的解决方法建议,希望对你解决仅在一个 Chrome 标签页中运行内容脚本有所启发或帮助;

我创建了一个 Chrome 扩展,我希望这个扩展只在一个打开的标签页中工作。例如,我希望此扩展程序仅适用于 Google.com。但是,尽管我打开了两个 Google.com 地址,但我希望此扩展程序仅适用于其中一个。所以内容脚本只能在一个 Google.com 标签上工作。如果我关闭运行扩展程序的选项卡,我希望此扩展程序在我将打开的 Google.com 选项卡中再次运行。

首先,我通过搜索所有打开的窗口和标签找到与 Google 匹配的标签 ID。如果删除此标签 ID,我希望它在与 Google 匹配的标签 ID 中注入 content.Js,它将再次找到,但此代码不起作用。

你能帮我吗?

背景.Js:

var count = 0;
Chrome.tabs.onUpdated.addListener(function (tabID,changeInfo,tab) {
  // for the current tab,inject the "inject.Js" file & execute it
  Chrome.windows.getCurrent(function (win) {
    Chrome.tabs.getAllinWindow(win.ID,function (tabs) {
      // Should output an array of tab objects to your dev console.
      for (let i = 0; i < tabs.length; i++) {
        if (tabs[i].url.match(/Google/g) == "Google" && tabs[i].status == "complete") {
          Chrome.storage.sync.set({ indexTabID: tabs[i].ID },function () {
            return;
          });
        }else{
          Chrome.storage.sync.set({ indexTabID: null },function () {
            return;
          });
        }
      }
    });

  });
  Chrome.storage.sync.set({ removed: false },function () {
  });
  Chrome.storage.sync.get('indexTabID',function (data) {
    // removed
    Chrome.tabs.onRemoved.addListener(function (tabID,info) {
      Chrome.tabs.get(tabID,function (tabremoved) {
        if (data.indexTabID == tabID) {
          
          Chrome.storage.sync.set({ removed: true },function () {
          });
          
        }
      });
    });
    Chrome.storage.sync.get('removed',function (data) {
      if(data.removed){
        count = 0;
      }else{
        count = 1;
      }
    });
    if (data.indexTabID == tab.ID && count < 1) {
      count++;
      console.log(tab.ID);
      Chrome.tabs.executeScript(tab.ID,{
        file: 'content.Js'
      });
    }
  
  });
});

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

大佬总结

以上是大佬教程为你收集整理的仅在一个 Chrome 标签页中运行内容脚本全部内容,希望文章能够帮你解决仅在一个 Chrome 标签页中运行内容脚本所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: