Javascript 弹出窗口和面板之间的镀铬扩展开关

Javascript 弹出窗口和面板之间的镀铬扩展开关,javascript,google-chrome-extension,google-chrome-devtools,Javascript,Google Chrome Extension,Google Chrome Devtools,我想将扩展显示为弹出窗口或扩展图标附近的停靠面板。目前我将其显示为一个弹出窗口: 舱单: "background": { "persistent": true, "scripts": ["background.js"] }, background.js: chrome.runtime.onMessage.addListener(function (msg, sender) { chrome.pageAction.show(sender.tab.id); }); c

我想将扩展显示为弹出窗口或扩展图标附近的停靠面板。目前我将其显示为一个弹出窗口:

舱单:

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

chrome.runtime.onMessage.addListener(function (msg, sender) {
    chrome.pageAction.show(sender.tab.id);
});

chrome.pageAction.onClicked.addListener(function(tab){
  chrome.windows.create({
  url: chrome.runtime.getURL("popup.html"),
  type: "popup"
  }, function(win){
  vid = win.id;
  });
});

相反,如果(){},我如何显示为停靠面板?

有很多扩展,它们在清单中定义了浏览器操作(引用popup.html)。单击时,它会在扩展图标附近显示一个“面板”。如果单击其他位置,将显示“面板”。我想让你在代码中看到bothAs,我有一个创建窗口的页面操作。我还想有一个页面的行动,显示一个弹出窗口(一个显示,如果点击外面)。这就是我困惑的地方。是的,我测试过这个。但是如果我设置了一个默认的弹出窗口,那么pageAction.onClicked.addListener中的windows.create将不再执行任何操作。窗口未创建。它只显示默认的_弹出窗口。我想在if(){}条件中显示一个或另一个。我见过一些扩展可以做到这一点。啊,现在我明白了。使用。示例:通过将setPopup设置为“”(nothing),可以实现此功能。非常感谢。