我正在为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
权限。
答案 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选项卡时,您将执行与注入脚本类似的操作。