chrome.tabs.query- Url规范

时间:2014-03-09 14:56:16

标签: 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. 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"});
});

我使用谷歌的Developer Site作为参考,我的manifest页面确实拥有tab权限。

1 个答案:

答案 0 :(得分:0)

http://www.pandora.com至少需要host permission才能查询访问它的标签。然后你想要这样的东西:

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选项卡时,您将执行与注入脚本类似的操作。