CMD+R不再工作在chrome://extensions/

CMD+R not working anymore in chrome://extensions/

本文关键字:extensions chrome 不再 工作 CMD+R      更新时间:2023-09-26

我正在开发一个Chrome扩展,以前,重新加载新代码,我只会去Chrome://extensions/并点击CMD+R。现在这不是重新加载扩展,我必须手动单击(用鼠标!!)在CMD+R链接。

这是相当恼人的,不确定是什么原因背后的变化。有人知道变通办法吗?

编辑:这似乎是在最近的Chrome版本修复。

Ctrl+R被打破是一个bug: https://code.google.com/p/chromium/issues/detail?id=526945

直到这个bug被修复,你可以使用任何的建议,我如何自动重载一个Chrome扩展I'm开发?

嗯,没错。以前是管用的。注意,这个重新加载的所有扩展。

无论如何,有很多扩展可以为你做这件事,例如这个或许多其他的。

如果你有兴趣制定自己的解决方案,chrome.management API可以做到这一点。

这是一个非常简单的扩展,它定义了两个快捷键来重载所有扩展:Ctrl+Shift+RAlt+R。不幸的是,我们不能重新定义Ctrl+R

manifest.json:

{
  "manifest_version": 2,
  "name": "Extensions Reloader",
  "short_name": "Extensions Reloader",
  "description": "",
  "version": "0.0.1",
  "permissions": [
    "<all_urls>",
    "tabs",
    "storage",
    "management",
    "http://*/*",
    "https://*/*"
  ],
  "commands": {
    "reload1" : {
      "suggested_key": {
        "default": "Ctrl+Shift+R"
      },
      "description": "Reload all extensions"
    },
    "reload2" : {
      "suggested_key": {
        "default": "Alt+R"
      },
      "description": "Reload all extensions"
    }
  },
  "browser_action": {
    "default_icon": {
      "19": "icon.png",
      "38": "icon.png"
    },
    "default_title": "Reload all extensions"
  },
  "background": {
    "persistent": false,
    "scripts": [
      "background.js"
    ]
  }
}

background.json:

chrome.commands.onCommand.addListener(function (command) {
  console.log(command);
  if (command == "reload1" || command == "reload2") {
    reloadAll();
  }
});
chrome.browserAction.onClicked.addListener(reloadAll);
function reloadAll() {
  chrome.management.getAll(function(extensions) {
    for (var i = 0; i < extensions.length; i++) {
      var extension = extensions[i];
      if (extension.id == chrome.runtime.id) {
        continue;
      }
      if (!extension.enabled) {
        continue;
      }
      var id = extension.id;
      chrome.management.setEnabled(id, false, function() {
        chrome.management.setEnabled(id, true);
      });
    }
  });
}