有没有办法设置谷歌浏览器扩展程序(可能在清单?),以便它只在一个选项卡上运行?这样,我可以让我的扩展程序在一个选项卡上执行操作,同时我在另一个选项卡上处理其他工作。
我需要这种能力,因为我的扩展程序几乎位于网站上,并且不断刷新页面,寻找更新。
修改
虽然由于隐私政策我无法显示扩展程序的代码,但我可以解释它究竟是做什么的。对于localbitcoins.com,分机会在页面上搜索未读取的消息通知,并每隔3秒刷新一次又一次的搜索。如果找到未读消息,则会将当前URL重定向到通知提供的链接。从那里,它标识一个html表单,用消息填充abs~
标签,提交表单,然后返回主页,再次搜索新消息。再次,每3秒刷新一次。
答案 0 :(得分:2)
我认为你的扩展是通过清单注入内容脚本来实现的。
您可以使用浏览器操作制作扩展程序,点击后打开选项卡,然后按programmatic injection处理内容脚本。
这样,即使您打开具有相同网站的另一个标签,内容脚本也不会被注入。
或者,您始终可以注入内容脚本,但只能"激活"它来自背景页面。
这只是一个非常高级的概述,但您的问题很清楚。
在任何情况下,您都需要一个背景页+ messaging,因为只有背景页才知道标签ID。
答案 1 :(得分:0)
据我所知,您正在创建特定于站点的扩展。在这种情况下,在manifest.json文件中设置站点特定权限。
"permissions": ["https://WhateverYourSite/*","activetab"]