Chrome扩展程序:onclick扩展程序图标,在新标签页中打开popup.html

Dav*_*vid 20 google-chrome google-chrome-extension

我创建了一个chrome扩展并设法使用打开popup.html文件window.open.但是我想在新标签中打开它,我尝试了很多不同的方法,包括:

<script type="text/javascript" language="JavaScript">
  chrome.tabs.create('url': 'popup.html');
Run Code Online (Sandbox Code Playgroud)

我只是将代码放在错误的地方,还是完全错误的代码?

Moh*_*our 21

为什么要在新标签中打开popup.html?您应该为此创建一个不同的页面.无论如何,如果你想打开popup.html,在新标签中,你需要传入扩展URL.

http://code.google.com/chrome/extensions/extension.html#method-getURL

chrome.tabs.create({'url': chrome.extension.getURL('popup.html')}, function(tab) {
  // Tab opened.
});
Run Code Online (Sandbox Code Playgroud)

  • 需要从后台页面调用此代码段,因此,如果您尝试从内容脚本中打开选项卡,请将消息发送到将触发此代码的后台页面.以下是以这种方式发送邮件的相应页面:http://code.google.com/chrome/extensions/messaging.html (4认同)
  • 我不得不将'url':chrome.extension.getURL('popup.html')括在括号中.{'url':chrome.extension.getURL('popup.html')} (2认同)

wan*_*der 7

现在,您可以在单击扩展图标时使用" 事件页面"在新选项卡中打开popup.html,而无需创建default_popup页面.

表现:

"background": {
    "scripts": ["background.js"],
    "persistent": false
}
Run Code Online (Sandbox Code Playgroud)

JS:

chrome.browserAction.onClicked.addListener(function(tab) {
    chrome.tabs.create({'url': chrome.extension.getURL('popup.html'), 'selected': true});
});
Run Code Online (Sandbox Code Playgroud)

  • 这将在每次点击时打开新标签.检查扩展程序弹出窗口是否已打开可能是明智的,如果是,则选择它 (3认同)