在新标签页上触发Chrome扩展程序

Dus*_*nSt 9 javascript google-chrome google-chrome-extension

打开新标签页并加载html文档时,我需要运行Chrome扩展程序.

扩展需要检查新选项卡标题,如果它等于预定义字符串,则选项卡应该关闭.

现在,我已经设法编写扩展功能,当我点击它的图标时.但是我希望在新选项卡中加载页面后使其无需单击图标即可运行.

这是当前的代码.

function getCurrentTabData(callback) {
  var queryInfo = {
    active: true,
    currentWindow: true
  };
  chrome.tabs.query(queryInfo, function(tabs) {
    var tab = tabs[0];
    var title = tab.title;
    var id = tab.id;
    callback(title, id);
  });
}

document.addEventListener('DOMContentLoaded', function() {

  getCurrentTabData(function(title, id) {

    if(title == 'Page title') {
        chrome.tabs.remove(id, function() { });
    }

  });
});
Run Code Online (Sandbox Code Playgroud)

这是我的manifest.json

{
  "manifest_version": 2,

  "name": "Auto close tab",
  "description": "Auto closes tab if title is matched",
  "version": "1.0",

  "browser_action": {
    "default_icon": "icon.png"
  },
  "permissions": [
    "activeTab"
  ]
}
Run Code Online (Sandbox Code Playgroud)

如何让它运行而不点击它的图标?

小智 15

首先要完成此任务,您需要有一个背景页面来管理您的扩展状态.您可以在此处阅读:https://developer.chrome.com/extensions/background_pages

然后在后台页面脚本中,您将需要在使用以下代码创建选项卡时进行侦听:

chrome.tabs.onCreated.addListener(function callback)
Run Code Online (Sandbox Code Playgroud)

以下是此文档:https://developer.chrome.com/extensions/tabs#event-onCreated

希望这有助于解决您的问题.