【问题标题】:chrome.tabs.create not working on Chrome startupchrome.tabs.create 在 Chrome 启动时不起作用
【发布时间】:2017-09-27 23:18:48
【问题描述】:

我有一个简单的 Chrome 扩展程序,在 background.js 文件中只有这个小代码:

chrome.tabs.create({}, function (tab) {
    console.log(tab.id);
});

当我通过开发者模式安装它时,它会创建一个新选项卡并将其 id 写入控制台。

但是当我退出 Chrome 并重新启动它时,Chrome 启动时没有任何反应。我以为每次浏览器启动时都会加载后台脚本?

这有什么问题,在浏览器启动时有没有其他方法可以做到这一点?

【问题讨论】:

  • Chrome 在每次启动时都会禁用手动安装的扩展程序,除非您修补 dll。
  • 你能告诉我那个方向吗?
  • 谢谢,我试试。我现在想到一件事,我在 background.js 中的 chrome.tabs.create 调用之前放置了一个 console.log,它在 Chrome 启动时正确执行。所以看起来它并没有阻止整个扩展,只需调用 Chrome 扩展 API(如 chrome.tabs.create)。
  • @wOxxOm 忘记我之前的评论,我说的不对,console.log 是从之前的某个实例中留下的。我按照说明操作,成功破解了 chrome.dll,但我的 background.js 代码仍然无法在 Chrome 启动时运行......还有其他想法吗?

标签: javascript google-chrome google-chrome-extension tabs


【解决方案1】:

更改清单并添加背景属性:

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

Chrome 将在每次浏览器启动时运行此脚本“background.js”(直到您的扩展程序启用)。 因此,只需将代码添加到 background.js 脚本即可。

 //background.js content
    chrome.tabs.create({}, function (tab) {
        console.log(tab.id);
    });

【讨论】:

  • 谢谢,但我在 Chrome 扩展方面有很多经验,而且我知道后台是如何工作的。但它不适用于我在问题中写的情况。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-03
  • 1970-01-01
相关资源
最近更新 更多