Javascript Chrome扩展:创建弹出窗口后访问初始选项卡
我正在尝试创建一个扩展:点击chrome上的一个按钮,它将启动一个弹出窗口,从这个弹出窗口中,我想从最初的选项卡中获取信息,该选项卡集中于我按下按钮的时间Javascript Chrome扩展:创建弹出窗口后访问初始选项卡,javascript,google-chrome,google-chrome-extension,popup,Javascript,Google Chrome,Google Chrome Extension,Popup,我正在尝试创建一个扩展:点击chrome上的一个按钮,它将启动一个弹出窗口,从这个弹出窗口中,我想从最初的选项卡中获取信息,该选项卡集中于我按下按钮的时间 function onClick(tab) { var originalTab = tab, popupTab; chrome.windows.create( { url: chrome.extension.getURL('popup.html'),
function onClick(tab) {
var originalTab = tab,
popupTab;
chrome.windows.create(
{
url: chrome.extension.getURL('popup.html'),
type: 'popup'
},
function (w) {
w.getCurrent({populate: true}, function (win) {
var popupTab = win.tabs[0];
popupTab.insertCSS(null, {code: 'body {background:red;}'});
//look now I have access to the original and popup tabs!!!
});
}
);
}
chrome.browserAction.onClicked.addListener(onClick);
通过使用下面的脚本,实际上什么都没有发生
单击按钮后,我正在创建另一个窗口,当创建窗口时,我将获得其中的第一个可用选项卡。
在这种情况下,我可以访问originalTab和popupTab实例,但不幸的是,这并不是正在发生的事情
是否有特殊原因导致此脚本无法按预期工作
提前感谢我不确定你的代码到底出了什么问题,但我用了另一种方式 在清单中指定了弹出窗口。一般来说,这可能不重要,但如果事件处理程序只应该打开弹出窗口,那么这似乎是一种更可取的方法。事实就是这样 对于popup onload事件,有一个处理程序具有类似的特性:
function onLoad()
{
chrome.windows.getCurrent(
function(win)
{
chrome.tabs.query({'windowId': win.id, 'active': true},
function(tabArray)
{
// tabArray[0] - is the initially selected tab, so you may do...
chrome.tabs.insertCSS(tabArray[0].id, {code: 'body {background:red;}'});
}
}
}