我正在尝试创建一个扩展,其中:点击Chrome上的一个按钮,它将启动一个弹出窗口,从该弹出窗口我想从初始标签中获取信息,该信息集中于我按下的时间按钮。
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实例,但不幸的是,这不是正在发生的事情。
此脚本是否有特殊原因无法按预期工作?
提前致谢
答案 0 :(得分:0)
我不确定你的代码有什么特别的错误,但我这样做了。
在清单中指定了弹出窗口。这一般来说可能并不重要,但如果事件处理程序应该做的唯一事情就是打开弹出窗口,这似乎是一种优选的方法。情况就是这样。
对于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;}'});
}
}
}