2010-03-09 209 views
17

我创建了一个Chrome扩展程序,并设法使用window.open打开popup.html文件。不过,我想在新标签中打开它,我已经尝试了许多不同的方式,包括:Chrome扩展程序:onclick扩展名图标,在新标签页中打开popup.html

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

我是不是把代码在错误的地方或者是错误的代码完全?

+0

尝试这样的回答:http://stackoverflow.com/a/36996729/5309803 ...它为我的作品 – 2017-05-01 15:14:43

回答

20

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

这个片段需要从后台页面调用,所以如果你试图从内容脚本中打开标签,发送一条消息到后台页面来触发这段代码。下面是以这种方式发送邮件的适当页面:http://code.google.com/chrome/extensions/messaging.html – 2010-03-10 00:56:16

+2

我必须包装'网址':chrome.extension.getURL('popup.html')括号内的。 {'url':chrome.extension.getURL('popup.html')} – AdamB 2010-04-09 00:48:53

2

使用chrome.tabs.create(对象属性,回调函数)作为http://code.google.com/chrome/extensions/tabs.html

对象属性可包含用于WINDOWID,索引,url和所选的字段描述。可选的回调函数接收新创建的选项卡的Tab对象。

所以最简单的例子在当前窗口中创建一个新的标签,并把它选择的是这样的:

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

不知道为什么你想显示popup.html在一个新的标签,但是我发现它在开发/调试我的扩展时非常有用......在扩展页面上,通常只有一个指向背景页面的链接是一件非常痛苦的事情。

很想知道如何在一个新的窗口,也许在kiosk模式;-)

+2

请注意'selected'现在已被弃用。改用''突出显示'。 – Brad 2017-06-02 21:11:31

6

现在你可以使用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}); 
}); 
+3

这将在每次点击时打开新标签页。检查扩展弹出菜单是否已经打开可能是明智的,如果是,请选择它 – 2016-03-30 20:22:44

相关问题