大佬教程收集整理的这篇文章主要介绍了仅在一个 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,请注明来意。