Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google chrome extension Chrome分机:重新加载时是否可以保持分机打开?_Google Chrome Extension_Reload - Fatal编程技术网

Google chrome extension Chrome分机:重新加载时是否可以保持分机打开?

Google chrome extension Chrome分机:重新加载时是否可以保持分机打开?,google-chrome-extension,reload,Google Chrome Extension,Reload,我正在构建一个google扩展,它在页面中插入html,并在浏览器上显示一个菜单操作图标单击,当我重新加载页面时,我找不到保持扩展打开的方法。所以在每次重新加载时,我们必须从浏览器操作图标再次激活它 在清单文件下方 { "background": { "scripts": ["background.js"] }, "browser_action": { "default_icon": "img/icone.png", "

我正在构建一个google扩展,它在页面中插入html,并在浏览器上显示一个菜单操作图标单击,当我重新加载页面时,我找不到保持扩展打开的方法。所以在每次重新加载时,我们必须从浏览器操作图标再次激活它

清单文件下方

{

    "background": {
        "scripts": ["background.js"]
    },

    "browser_action": {
        "default_icon": "img/icone.png",
        "default_title": "show menu"
    },

    "icons" : {
        "128" : "img/icone_128.png",
        "48" : "img/icone_48.png",
        "32" : "img/icone_32.png",
        "24" : "img/icone_24.png",
        "16" : "img/icone_16.png"
    },

    "manifest_version": 2,
    "name": "p|layer",
    "version": "1.0.4",

    "content_scripts": [
        {
            "matches": [ "<all_urls>"],
            "css":["css/grid.css", "css/font-awesome.min.css"],
            "js":["js/jquery-1.11.1.min.js","js/jquery-ui.js", "js/jquery.nicefileinput.min.js"]
        }
    ],

    "web_accessible_resources": [
        "fonts/fontawesome-webfont.woff"
    ],

    "permissions": [ "activeTab"]

 }

任何帮助都将不胜感激

因此,从评论中可以推断出问题:单击按钮会激活内容脚本,但重新加载页面会将其清除。假设您希望单击按钮作为切换:

1)始终插入内容脚本/CSS,但不要立即显示UI:

“内容脚本”:[
{
“匹配项”:[“”],
“css”:[“css/grid.css”、“css/font-awesome.min.css”、“css/slider.css”],
“js”:[
“js/jquery-1.11.1.min.js”、“js/jquery ui.js”,
“js/jquery.nicefileinput.min.js”、“js/contentscript.js”
]
}
],
2)跟踪“激活”选项卡:

var-activeTabs={};
chrome.browserAction.onClicked.addListener(函数(选项卡){
var活跃;
if(activeTabs[tab.id]){
删除activeTabs[tab.id];
主动=假;
}否则{
activeTabs[tab.id]=true;
主动=真;
}
/*(第三部分)*/
});
chrome.tabs.onRemoved.addListener(函数(tabId){
删除活动选项卡[tabId];
});
chrome.tabs.onReplaced.addListener(函数(newTabId,oldTabId){
如果(activeTabs[oldTabId])activeTabs[newTabId]=true;
删除activeTabs[oldTabId];
});
3)使用消息显示/隐藏用户界面:

内容脚本:

chrome.runtime.onMessage.addListener(函数(message.sender,sendResponse){
if(message.showUI)showUI();
if(message.hideUI)hideUI();
});
背景脚本:

chrome.browserAction.onClicked.addListener(函数(选项卡){
var活跃;
/*(第二部分)*/
如果(活动){
sendMessage(tab.id,{showUI:true});
}否则{
sendMessage(tab.id,{hideUI:true});
}
});

对于扩展重新加载的情况,可以增加额外的健壮性,但这是它的要点。

Oups,我翻译了我的消息,“大家好,”没有附带,编辑也不起作用:我不明白您要做什么或问题是什么。您可以通过清单中的
content\u脚本注入菜单,然后在重新加载时重新注入菜单。显示一些代码!我用一些代码编辑了我的文章,我试着简单地再次解释。当我们点击图标,我的菜单和选项出现,但当我重新加载我的页面扩展关闭,所有消失。我需要在当前选项卡中显示所有内容。这样更好。现在你想达到什么目的?您的按钮点击激活了当前选项卡的菜单,然后会发生什么?它应该被停用吗?毫无疑问,我的手指今天失败了很多。。。当我们点击图标时,会出现我的菜单和选项,但当我重新加载扩展时,菜单会关闭,所有选项都会消失。我需要显示所有内容(所有内容都保存在localStorage中),如果用户每次重新加载时都必须打开扩展,这将很烦人。谢谢Xan,我不明白你的所有帖子,如果2)是否为background.js。但我将在本周末更深入地关注这一点。
chrome.browserAction.onClicked.addListener(function (tab) { //Fired when User Clicks ICON

    chrome.tabs.executeScript(tab.id,
    {"file": "js/contentscript.js"},

    function () { // Execute your code
        console.log("Script Executed .. "); // Notification on Completion
    });

    chrome.tabs.insertCSS(tab.id, {file: "css/grid.css"});
    chrome.tabs.insertCSS(tab.id, {file: "css/font-awesome.min.css"});
    chrome.tabs.insertCSS(tab.id, {file: "css/slider.css"});

});