Advertisement
nagrizolich

Untitled

Oct 8th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // слушает нажатие по иконке экстеншона
  2. chrome.browserAction.onClicked.addListener(function(activeTab) {
  3.   // этот колбэк вызывает когда по иконке кликнули
  4.   var closedTabs = [];
  5.   chrome.tabs.query({}, function(tabs) {
  6.     // все открытые закладки добавляются в массив и закрываются
  7.     for (var i = 0; i < tabs.length; i++) {
  8.       closedTabs.push(tabs[i]);
  9.       chrome.tabs.remove(tabs[i].id);
  10.     }
  11.     // создается новая вкладка со страничкой нашего приложения
  12.     chrome.tabs.create({
  13.       'url': chrome.extension.getURL('index.html')
  14.     }, function(newTab) {
  15.       // этот колбэк вызывает когда вкладка создана
  16.       // тут создается еще один слушатель который слушает вообще все вкладки
  17.       // когда на какой-либо вкладке проиходят изменения(любые) вызывается клобэк ниже
  18.       chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
  19.         // вот этот вот
  20.         // он сравнивает id вкладки где были изменения и id вкладки которую мы создали для
  21.         // нашего приложения. если они совпадают значит изменения произошло на нашей вкладке
  22.         // если это изменение было complete т.е. страница загрузилась
  23.           if (newTab.id === tabId && changeInfo.status == 'complete') {
  24.             // мы высылаем ей массив с закрытыми вкладками
  25.             // чтобы уже на страничке приложения отобразить ссылки на них
  26.             chrome.runtime.sendMessage(closedTabs);
  27.           }
  28.       });
  29.     });
  30.   });
  31. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement