Chrome扩展程序在新标签页上打开新标签页

理查德·帕纳比·金

我已经创建了一个Chrome扩展程序,作为其操作的一部分,它将打开一个带有指定URL的新标签页。

chrome.runtime.onMessage.addListener(
  function(request, sender, sendResponse) {
    if( request.message === "open_new_tab" ) {
      chrome.tabs.create({"url": request.url});
    }
  }
);

(完整代码可在GitHub上获得

这在带有网页的标签页上可以正常使用,但是我无法使它在空标签页上正常工作,例如:chrome://apps/要澄清一下,如果我打开了一个标签页并且它在stackoverflow.com上,那么当我单击扩展按钮时,它会打开一个新标签页加载生成的网址。当我使用新标签或网址开头的标签时,chrome://扩展名不起作用。

我需要包括什么权限才能允许扩展在ANY选项卡中打开?包括新标签和任何chrome://标签?

Manifest.json:

{
  "manifest_version": 2,

  "name": "MyMiniCity Checker",
    "short_name": "MyMiniCity Checker",
  "description": "Checks what your city needs most and redirects the browser accordingly.",
  "version": "0.2",
    "author":"Richard Parnaby-King",
    "homepage_url": "https://github.com/richard-parnaby-king/MyMiniCity-Checker/",
    "icons": {
      "128": "icon-big.png"
   },

    "options_page": "options/options.html",

  "browser_action": {
    "default_icon": "icon.png"
  },
    "permissions": ["tabs","storage","http://*.myminicity.com/","http://*/*", "https://*/*"],
    "background": {
    "scripts": ["background.js"],
    "persistent": false
    },
    "content_scripts": [ {
    "matches": [ "http://*/*", "https://*/*"],
    "js": [ "jquery-1.11.3.min.js" ]
  }]
}

Background.js:

//When user clicks on button, run script
chrome.browserAction.onClicked.addListener(function(tab) {
    chrome.tabs.executeScript(null, { file: "jquery-1.11.3.min.js" }, function() {
    chrome.tabs.executeScript(null, { file: "contentscript.js" });
    });
});

chrome.runtime.onMessage.addListener(
  function(request, sender, sendResponse) {
    if( request.message === "open_new_tab" ) {
      chrome.tabs.create({"url": request.url});
    }
  }
);

好像没有执行background.js文件。我怀疑这是一个权限。为了在每个选项卡中运行此扩展程序,我需要什么权限?

理查德·帕纳比·金

因为我希望此代码在每个页面上运行,所以这意味着内容脚本中没有代码。我将所有代码移到了后台脚本中:

chrome.browserAction.onClicked.addListener(function(tab) {
        //... 
        chrome.tabs.create({"url": newTabUrl});
        //...
});

因此,当我单击按钮时,使用随附的jquery脚本调用了上面的代码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Chrome扩展程序:URL未在新标签页中打开

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

Firefox/Chrome 扩展程序 - 阻止新标签页

Chrome扩展程序仅在新标签页中正常运行

Chrome扩展程序在新标签页中运行js

Chrome扩展程序-在新标签页中打开捕获的屏幕截图

Chrome扩展程序:如何在新标签页中打开链接?

简单的Chrome扩展程序:在新标签页中打开一个网址

单击工具栏图标时,在新标签页中打开Chrome扩展程序

无法使用Chrome扩展程序弹出窗口中的按钮打开新标签页

Chrome扩展程序:打开新标签页,而不会失去弹出窗口的焦点

编辑 Chrome 扩展程序(Adblock)代码,使其在安装时不会打开新标签页

在后台打开新标签页,将重点放在当前标签页上-Chrome

在Firefox / Chrome上打开新标签页或窗口时,如何获得新的浏览器会话?

如何在Chrome上覆盖“新标签页”页面(没有第三方软件,例如扩展程序)

Chrome,Javascript,window。在新标签页中打开

自动为新标签页打开Chrome开发工具

Google Chrome-在新标签页中打开弹出窗口?

Google Chrome无法在新标签页中打开Blob

强制Chrome在特定窗口中打开新标签页

Firefox / Chrome禁止在新标签页中打开搜索

Google Chrome打开新标签页-键盘快捷键

如何使用Autohotkey打开新的Chrome标签页?

如何使Chrome在新标签页中打开书签和URL?

Chrome会不断打开新标签页作为新窗口

在新标签页中打开引导程序模式

如何从React前端应用程序打开新标签页

Chrome扩展程序:如何在新标签页中显示背景图片

带有url +所选文本(js,Chrome扩展程序)的新标签页