Javascript chrome.tabs.query-Url规范

Javascript chrome.tabs.query-Url规范,javascript,google-chrome-extension,tabs,Javascript,Google Chrome Extension,Tabs,我正在为Pandora制作一个扩展,当用户单击扩展图标(右上角)时,该扩展将打开一个带有Pandora.com的新选项卡。我试图避免的是用户多次按下按钮并打开多个标签,这些标签将同时播放音乐 这就是我到目前为止所做的: // When extension is clicked chrome.browserAction.onClicked.addListener(function(tab) { // checks to see if pandora tab is already open

我正在为Pandora制作一个扩展,当用户单击扩展图标(右上角)时,该扩展将打开一个带有
Pandora.com
的新选项卡。我试图避免的是用户多次按下按钮并打开多个标签,这些标签将同时播放音乐

这就是我到目前为止所做的:

// When extension is clicked
chrome.browserAction.onClicked.addListener(function(tab) {

    // checks to see if pandora tab is already open. if it's already open,
    // the script returns (Or atleast thats what I want it to do)

    chrome.tabs.query({url: "http://www.pandora.com/*"}, function(results) {
        return;
    });

    // injects the javascript
    chrome.tabs.executeScript(null,{file: "buy.js"});
});
我使用谷歌作为参考,我的
清单
页面确实有
选项卡
权限。

您至少需要
http://www.pandora.com
以便查询访问它的选项卡。那么你想要的是:

chrome.tabs.query({url: "http://www.pandora.com/*"}, function(results) {
    if (results.length == 0) {
        chrome.tabs.create({url: 'http://www.pandora.com/'}, function(tab) {
            chrome.tabs.executeScript(tab.id,{file: "buy.js"});
        });
    }
});
以便在了解是否存在现有选项卡后创建选项卡,然后在创建新选项卡后注入脚本

当存在Pandora选项卡时,您将执行类似于注入脚本的操作