2015-04-09 3 views
3

У меня есть простой список научных ссылок на расширение Chrome:Chrome Extension: Открыть новую вкладку без потери всплывающую фокус

<a href="http://www.example1.com" target="_blank">Research Link 1</a> 
<a href="http://www.example2.com" target="_blank">Research Link 2</a> 
<a href="http://www.example3.com" target="_blank">Research Link 3</a> 

На любой веб-странице, я мог Ctrl + клик все три ссылки, открытие новых вкладок фон. Однако это не похоже на всплывающее окно расширения Chrome. Если вы нажмете Ctrl + клик по ссылке, расширение закрывает всплывающее окно, что в любое время не позволяет вам нажимать более одной ссылки.

Я пробовал подход chrome.tabs.create с кликом, который описан в нескольких других сообщениях, но похоже на просто щелчок target = "_ blank", поскольку он просто открывает новую вкладку с фокусом.

chrome.tabs.create({url: 'http://www.google.com'}); 

Есть ли способ, чтобы открыть новую вкладку без фокуса (Ctrl + клик), в то же время позволяя расширение всплывающее окно, чтобы оставаться видимым в текущей вкладке, так что пользователь может нажать на второй, третий или четвёртый ссылка? Таким образом, пользователю не нужно повторно запускать расширение несколько раз, что требует времени, поскольку оно должно аутентифицироваться и запрашивать данные снова и снова.

ответ

9

Да, есть an option for create:

chrome.tabs.create({url: 'http://www.google.com', active: false}); 

Я использую его в одном из моих расширений точно так, как вы описали.

+0

Я был близок. :) Благодаря! – JeffG

0

Вот что я сделал, чтобы разрешить правильный щелчок Ctrl + щелчок (открыть вкладку в новом окне фона) в расширении Chrome - использует jQuery.

<a class="ctrllink" style="cursor: pointer;" url="http://www.example1.com">Research Link 1</a> 
<a class="ctrllink" style="cursor: pointer;" url="http://www.example2.com">Research Link 2</a> 
<a class="ctrllink" style="cursor: pointer;" url="http://www.example3.com">Research Link 3</a> 

Я использовал <a> тег для того, чтобы сохранить стиль гиперссылки по умолчанию (цвет, наведение подчеркивания, и т.д.), но удалил HREF. Поскольку нет href, необходимо определить стиль курсора в элементе или классе.

Глобальные переменный:

var tabplacement = 0; 

Tabplacement был сделано, чтобы имитировать путь Chrome открывает вкладки, увеличивающийся с последним созданием.

$(function() { 
    $('.ctrllink').on('click', function (event) { 
     var ctrlpressed = (event.ctrlKey || event.metaKey); 
     var url = $(this).attr('url'); 
     chrome.tabs.getSelected(null, function (tab) { 
      tabplacement += 1; 
      var index = tab.index + tabplacement; 
      chrome.tabs.create({'url': url, active: !ctrlpressed, 'index': index}); 
     }); 
    }); 
}); 

Включен metaKey для обработки Mac Command ⌘

Смежные вопросы