Chrome扩展程序,在选定的标签更新后,专注于页面而不是多功能框?

时间:2011-03-03 15:21:24

标签: google-chrome google-chrome-extension

我创建了一个名为quickmarks的扩展程序,它会在当前选中的标签页上按关键字打开书签。我是 使用多功能框选择书签(chrome.omnibox.onInputEntered), 和chrome.tabs.update API在当前标签中打开书签的网址 提供updateProperties中的网址。但是在标签之后 更新,焦点仍然在多功能框中,这使用户 - 经验不如我想要的那么好。那么有没有办法设置 专注于页面,而不是多功能框。

顺便说一下,我尝试使用chrome.tabs.create打开一个新标签页。该 页面将被聚焦而不是多功能框,这是我的期望 行为。

感谢。

3 个答案:

答案 0 :(得分:6)

使用chrome.tabs.update(tab.id, {url: url, selected: true});可以解决这个问题。

答案 1 :(得分:1)

已接受的答案在Chrome 31中不再有效。我原本希望将selected属性弃用,但替换highlighted属性也没有将焦点分配给选项卡的内容。

我只能通过关闭当前标签然后在其位置创建新标签来从多功能框中窃取焦点。以下是适用于Chrome 31的代码:

chrome.tabs.getSelected(null, function(tab) {
    chrome.tabs.remove(tab.id, function() {
        chrome.tabs.create({url:url, active:true});
    });
});

虽然这当然不理想,但当前标签已关闭,而新的标签打开速度如此之快,您几乎没有发现任何差异。

答案 2 :(得分:0)

Dave Teare是正确的,这在当前版本的Chrome中不再适用,但是他的方法对我不起作用。删除选项卡后,似乎没有调用chrome.tabs.create。

我使用Chrome扩展程序iChrome,我希望在创建新标签时选择它,因此我安装了另一个扩展程序,将新标签重定向到iChrome。不幸的是,它使用了相同的弃用"选择:true"方法

据我所知,目前还没有办法干净利落,你不能让Chrome更新标签的输入,也不能让它选择onmibar中的文字,所以你不能在创建之后开始搜索一个新标签。所以这就是我提出的:

chrome.tabs.create({url:url, active:true}, function(){
    chrome.tabs.remove(tab.id);
});

绝对不理想,当它关闭旧标签时你可以看到闪光灯,但它有效。输入是重点。