好的你好;),我的Chrome扩展程序有这个清单:
"browser_action":
{
"default_icon": "cafe.png",
"default_popup": "popup.html"
},
"background":
{
"scripts": ["background.js"]
},
"permissions":
[
"tabs",
"webRequest",
"http://*/",
"background"
]
我想要一个在我关闭其弹出页面时继续运行的扩展程序(比如阻止弹出窗口应用程序,有些事情发生但你看不到)。无论是关闭弹出页面还是打开它,我都要保留一个运行任务的内容,如果我不断触摸browser_action图标来打开和关闭EXTENSION,那就没有了。
我认为使用后台页面(JS)我会这样做,但是nop不会像这样工作。当我关闭弹出的htnl时,请点击我的应用程序的一侧,关闭应用程序,我的后台页面停止,我无法保存数据和时间Intervals(setInterval(functions()))任务被销毁。
具体¿我想要什么?: 我在弹出页面中保存一个字符串(如名称),关闭弹出窗口并保留它(如果可能的话,在后台js中),再次打开应用程序查看数据并编辑它或其他东西。和!有一个恒定的任务运行,例如:像一个计数器增加(我认为这部分使用Javascript间隔设置和清除)。
注意:我直接在默认的html_popUP中调用后台脚本,我不知道是否是最佳实践但是它的工作XD
答案 0 :(得分:2)
“我直接在我的默认html_popUP中调用后台脚本” - 如果将“popup.html”中的“background.js”与元素'链接,则创建两个background.js实例。例如 - 如果您在“backround.js”上下文菜单中创建 - 它将在上下文菜单中创建两个相同的项目。 这是做到这一点的方法。要在弹出式广告和背景广告之间进行联系,您需要使用chrome.runtime.sendMessage和chrome.runtime.onMessage。
(对不起我的英语)。
答案 1 :(得分:1)
目标!这是我的解决方案:
1)为你做一个JS html popUP并使用 var bkg = chrome.extension.getBackgroundPage();
2)用这个你可以调用后台页面(就像发送信使,你的后台页面和你的脚本是两个不同的东西) 使用变量bkg,您可以调用您的背景页面的功能
3)最后,必须在后台页面中声明并实现此功能。您在BGPAGE中所做的一切都将在幕后完成。
这是代码:
//JS FROM POPUP HTML...
function connectExtension()
{
var bkg = chrome.extension.getBackgroundPage();
var user = document.getElementById("Usuario").value;
var password = document.getElementById("Clave").value;
bkg.startExtension(user,password);
}
//and this is the BACKGROUNDPAGE
function startExtension(user,password) {
//whatever you want to do
validateUser(user,password);
}