镀铬延长时间生活,任务在背景中

时间:2015-02-20 02:18:10

标签: javascript google-chrome google-chrome-extension background-process google-chrome-app

好的你好;),我的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

2 个答案:

答案 0 :(得分:2)

“我直接在我的默认html_popUP中调用后台脚本” - 如果将“popup.html”中的“background.js”与元素'链接,则创建两个background.js实例。例如 - 如果您在“backround.js”上下文菜单中创建 - 它将在上下文菜单中创建两个相同的项目。 这是做到这一点的方法。要在弹出式广告和背景广告之间进行联系,您需要使用chrome.runtime.sendMessagechrome.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);

}