Javascript 如何在带有扩展图标的chrome扩展中切换(打开/关闭)内容脚本?
我的chrome扩展由Javascript 如何在带有扩展图标的chrome扩展中切换(打开/关闭)内容脚本?,javascript,jquery,google-chrome,google-chrome-extension,Javascript,Jquery,Google Chrome,Google Chrome Extension,我的chrome扩展由background.js和content.js组成,我从background.js启动。我有两个图标显示扩展是打开还是关闭,为此,我在background.js中基于以下内容使用了以下脚本: 图标切换工作正常,但脚本执行不正常。即使图标显示扩展已关闭,内容脚本也可以工作。 我在content.js中的代码如下: $(document).ready(function(){ var url = document.location.href; var pageM
background.js
和content.js
组成,我从background.js
启动。我有两个图标显示扩展是打开还是关闭,为此,我在background.js
中基于以下内容使用了以下脚本:
图标切换工作正常,但脚本执行不正常。即使图标显示扩展已关闭,内容脚本也可以工作。
我在content.js
中的代码如下:
$(document).ready(function(){
var url = document.location.href;
var pageModel = {
url: url
};
config.allPages.push(pageModel);
chrome.storage.local.set({'config': config}, function () {
console.log('savedPageModelNew: ', config);
});
});
如何不仅切换图标,还切换脚本执行?坦率地说,我在content.js
中的脚本相当大,我不能把它全部放在这里。我需要的是内容脚本,它在扩展打开时工作,在扩展关闭时“暂停”。也许有人有答案
我真的希望如此。提前多谢
另外,这也是我的manifest.json:
{
"manifest_version": 2,
"name": "ChromeExt",
"version": "1.0",
"permissions": [
"activeTab",
"tabs",
"<all_urls>",
"contextMenus",
"storage",
"https://*/*", "http://*/*"
],
"browser_action": {
"default_title": "Inactive.",
"default_icon": "off.png"
},
"background": {
"scripts": ["background.js"]
},
"content_scripts": [
{
"matches": ["http://*///*//", "https://*/*"],
"css": ["mainStyles.css"]
}
]
{
“清单版本”:2,
“名称”:“ChromeExt”,
“版本”:“1.0”,
“权限”:[
“活动标签”,
“标签”,
"",
“上下文菜单”,
“存储”,
“https://*/*”,“http://*/*”
],
“浏览器操作”:{
“默认标题”:“不活动”,
“默认图标”:“off.png”
},
“背景”:{
“脚本”:[“background.js”]
},
“内容脚本”:[
{
“匹配项”:[“http://*//*/”,“https://*//*”],
“css”:[“mainStyles.css”]
}
]
}我们不需要查看您的内容脚本。您是否可以发布manifest.json,因为您可能已经在其中定义了内容脚本?此外,您知道,只有在单击“禁用”时页面尚未加载时,此操作才会停止内容脚本的运行。如果您希望在单击图标时停止已插入的内容脚本,则需要从内容脚本向后台页面发送消息,并以启用状态回复邮件。@Eja,谢谢您的评论,我添加了我的清单。里面有错误吗?我希望我的扩展在第一次激活时启动,然后在停止并再次启动后继续工作(不是每次单击图标激活扩展时启动)。您的清单正常。要执行所需操作,您需要在后台页面和内容脚本之间发送消息,因为后台页面知道启用状态,而内容脚本需要知道它无法直接访问的信息。在脚本之间发送消息在这里有很好的文档记录,我相信有很多关于编写扩展的教程使用它,因为这是一个非常常见的操作:@judgeja,非常感谢!我会按照你的建议去做。
{
"manifest_version": 2,
"name": "ChromeExt",
"version": "1.0",
"permissions": [
"activeTab",
"tabs",
"<all_urls>",
"contextMenus",
"storage",
"https://*/*", "http://*/*"
],
"browser_action": {
"default_title": "Inactive.",
"default_icon": "off.png"
},
"background": {
"scripts": ["background.js"]
},
"content_scripts": [
{
"matches": ["http://*///*//", "https://*/*"],
"css": ["mainStyles.css"]
}
]