Расширение Chrome, фокус на странице вместо омнибокса после обновления выбранной вкладки? - PullRequest
7 голосов
/ 03 марта 2011

Я создал расширение под названием quickmarks , которое открывает закладку по ключевому слову на выбранной в данный момент вкладке.Я использую omnibox, чтобы выбрать закладку (chrome.omnibox.onInputEntered), и chrome.tabs.update API, чтобы открыть URL-адрес закладки в текущей вкладке, указав URL-адрес в updateProperties.Однако после обновления вкладки фокус все еще остается в омнибоксе, что делает пользовательский опыт не таким хорошим, как я хотел.Итак, есть ли способ установить фокус на страницу, вместо омнибокса.

Кстати, я попытался открыть новую вкладку с помощью chrome.tabs.create.Страница будет сфокусирована вместо омнибокса, что является моим желаемым поведением.

Спасибо.

Ответы [ 3 ]

6 голосов
/ 03 марта 2011

Использование chrome.tabs.update(tab.id, {url: url, selected: true}); помогает мне.

1 голос
/ 06 января 2014

Принятый ответ больше не работает в 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});
    });
});

Хотя это, конечно, не идеально, текущая вкладка закрыта, а новая открывается так быстро, что вы едва заметите разницу.

0 голосов
/ 24 апреля 2014

Дейв Тир прав, что в текущей версии Chrome это больше не работает, однако его метод у меня не сработал.Казалось, что chrome.tabs.create не вызывается после удаления вкладки.

Я использую расширение Chrome iChrome, и я хотел, чтобы он был выбран при создании новой вкладки, поэтому я установил другое расширениеэто перенаправляет новые вкладки в iChrome.К сожалению, он использовал тот же устаревший метод «selected: true».

Из того, что я могу сказать, в настоящее время нет способа сделать это чисто, вы не можете сделать так, чтобы Chrome фокусировал ввод обновленной вкладки, и при этом вы не можете выбрать его.текст в onmibar, поэтому вы не можете просто начать поиск после создания новой вкладки.Вот что я придумал:

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

Определенно все еще не идеал, и вы можете увидеть вспышку, когда она закрывает старую вкладку, но она работает.Ввод сфокусирован.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...