Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.03.2018, 22:42
Интересующийся
Отправить личное сообщение для RightSeNN Посмотреть профиль Найти все сообщения от RightSeNN
 
Регистрация: 08.02.2017
Сообщений: 10

Как изменить/передать информацыю в иконку(Google Chrome Extension)
Собственно увидел что у многих розшырений есть подстрока с меняющейся в реальном времени информацыей(пример ниже). Как реализовать такое(Передать инфо в иконку)? Или где об этом почитать?
Изображения:
Тип файла: jpg informed icon.jpg (1.5 Кб, 13 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 12.03.2018, 22:54
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,787

Почитайте:
https://developer.chrome.com/extensi...d-setBadgeText
или погуглите.
Ответить с цитированием
  #3 (permalink)  
Старый 12.03.2018, 23:15
Интересующийся
Отправить личное сообщение для RightSeNN Посмотреть профиль Найти все сообщения от RightSeNN
 
Регистрация: 08.02.2017
Сообщений: 10

О спасибо, вроде именно то что мне надо. Сейчас буду пробовать реализовать. Сам пробовал найти в гугл но видать не правильно формулировал запрос и находил совсем другое.
Ответить с цитированием
  #4 (permalink)  
Старый 13.03.2018, 01:33
Интересующийся
Отправить личное сообщение для RightSeNN Посмотреть профиль Найти все сообщения от RightSeNN
 
Регистрация: 08.02.2017
Сообщений: 10

Столкнулся с новой проблемой. chrome.browserAction.setBadgeText(); не робит в contentscript. Добавил background в manifest. С нее текст выводится в иконку но чот не могу с локал стореджа подтянуть данные. Посоветуйте чтото.

var lalala = localStorage.getItem('lalala'); // - так не робит
//var lalala = 123; - так робит
chrome.browserAction.setBadgeText({text: (lalala).toString()});
Ответить с цитированием
  #5 (permalink)  
Старый 13.03.2018, 01:38
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

localStorage.setItem('lalala', '123');

попробуйте выше строчку вставить будет пахать?
Ответить с цитированием
  #6 (permalink)  
Старый 13.03.2018, 01:47
Интересующийся
Отправить личное сообщение для RightSeNN Посмотреть профиль Найти все сообщения от RightSeNN
 
Регистрация: 08.02.2017
Сообщений: 10

да вывело 123. Но куда оно его записало я не пойму
Ответить с цитированием
  #7 (permalink)  
Старый 13.03.2018, 01:50
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

localStorage.setItem('lalala', '123'); - записывает в ключ 'lalala' значение '123';

localStorage.getItem('lalala'); - прочитать ключ 'lalala' в котором значение '123'
Ответить с цитированием
  #8 (permalink)  
Старый 13.03.2018, 01:51
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

то есть прежде чем получать значение его надо туда положить, как в переменную.
Ответить с цитированием
  #9 (permalink)  
Старый 13.03.2018, 01:57
Интересующийся
Отправить личное сообщение для RightSeNN Посмотреть профиль Найти все сообщения от RightSeNN
 
Регистрация: 08.02.2017
Сообщений: 10

Это да но вот в чем проблемка.
К примеру мой contentscript записал в localstorage для домена javascript.ru "lalala=555" и это видно если перейти на вкладку application в консоли. А вот backgroundpage записало непонятно куда "lalala=123" нету во вкладке Application. Мне надо чтоб подтягивало именно те "lalala=555" что записал контент скрипт.

П. С. Я б сразу это делал в контент скрипте, но он не имеет разрешений на работу с гугл апи.
Ответить с цитированием
  #10 (permalink)  
Старый 13.03.2018, 04:13
Интересующийся
Отправить личное сообщение для RightSeNN Посмотреть профиль Найти все сообщения от RightSeNN
 
Регистрация: 08.02.2017
Сообщений: 10

Проблему решыл по другому.
localStorage чето не работало(может я както не так делал) попробовал chrome.storage

В итоге:
manifest.json добавил
"permissions": [
"storage"
],
"background": {
"scripts": ["js/background.js"]
}


В contextscript запись в chrome.storage(так как мое розшырение уже писало инфу в локал сторейдж придеться дублировать)
chrome.storage.sync.set({'testid': '123'});


В backgroundpage:
chrome.storage.onChanged.addListener(function(changes, namespace) {
        for (key in changes) {
            if (key === 'testid') {
            var storageChange = changes[key];
            chrome.browserAction.setBadgeText({text: (storageChange.newValue).toString()});
            }
        }
      });
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как заставить Chrome скачивать MP3? NikolasGrad Opera, Safari и др. 10 06.11.2016 17:33
Как узнать закэшировался ли скрипт Chrome? Livaanderiamarum Общие вопросы Javascript 3 01.01.2012 21:02
Как отправить Ajax запрос от плагина Chrome к веб серверу? fedotxxl AJAX и COMET 0 29.11.2011 20:53
Как вычислить браузер Chrome? prolapse Javascript под браузер 1 21.09.2011 22:41
Как указать title при открытии окна через window.open для chrome milvic Opera, Safari и др. 4 15.01.2011 15:18