【问题标题】:Chrome Extension: onclick extension icon, open popup.html in new tabChrome 扩展:onclick 扩展图标,在新选项卡中打开 popup.html
【发布时间】:2011-01-25 14:48:44
【问题描述】:

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

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

我只是将代码放在错误的位置还是完全错误的代码?

【问题讨论】:

标签: google-chrome google-chrome-extension


【解决方案1】:

按照http://code.google.com/chrome/extensions/tabs.html 中的描述使用 chrome.tabs.create(Object properties, function callback)

对象属性可以包含 windowId、index、url 和 selected 字段。可选回调函数接收新创建的选项卡的 Tab 对象。

因此,在当前窗口中创建新选项卡并将其选中的最简单示例如下所示:

chrome.tabs.create({'url': chrome.extension.getURL('popup.html')});

不确定为什么要在新选项卡中显示 popup.html,但我发现它在开发/调试我的扩展程序时非常有用......扩展页面上有“通常”是相当痛苦的只是一个指向背景页面的链接。

很想知道如何在新窗口中打开它,也许在信息亭模式下;-)

【讨论】:

【解决方案2】:

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

清单:

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

js:

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

【讨论】:

  • 这将在每次点击时打开新标签。检查扩展弹出窗口是否已经打开可能是明智之举,如果是,只需选择它
  • selected 自 chrome 33 起已弃用,您应该使用 active 代替它。 developer.chrome.com/extensions/tabs#method-create
【解决方案3】:

为什么要在新选项卡中打开 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.
});

【讨论】:

  • 这个sn-p需要从后台页面调用,所以如果你试图从内容脚本打开标签,发送一条消息到后台页面会触发这个代码。以下是有关以这种方式发送消息的相应页面:code.google.com/chrome/extensions/messaging.html
  • 我必须将 'url':chrome.extension.getURL('popup.html') 括在括号中。 {'url': chrome.extension.getURL('popup.html')}
  • 请记住,需要“选项卡”权限会在安装时向用户显示警告,即 Chrome 扩展程序需要“读取您的浏览历史记录”,但如果您只想打开一个新选项卡,那么只需使用“activeTab”权限,它不会触发该警告。
猜你喜欢
  • 2012-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-30
  • 2016-11-04
  • 1970-01-01
相关资源
最近更新 更多