Взаимодействие с браузером
1. Закладка
Используйте модуль chrome.bookmarks для создания, организации и управления закладками. Смотрите страницы переопределения, чтобы создать настраиваемую страницу менеджера закладок.
1.1. Конфигурация в manifest.json
{"name": "мое расширение", ... "разрешения": ["закладки"], ...}Объекты и свойства:
Знаки организованы в структуре деревьев, и каждый узел представляет собой закладку или группу узлов (каждая папка закладки может содержать несколько узлов). Каждый узел соответствует объекту BookmarkTreeNode.
Свойства BookmarkTreeNode можно использовать через API chrome.bomemarks.
пример:
Создал папку закладки под названием «Закладки расширения».
chrome.bookmarks.create ({'parentid': bookmarkbar.id, 'title': 'extension bookmars'}, function (newfolder) {console.log ("добавлена папка:" + newfolder.title);});Создал закладку для расширенного документа о разработке.
chrome.bookmarks.create ({'parentId': extensionFolderId, 'title': 'extensions doc', 'url': 'http://code.google.com/chrome/extensions'});2. cookie
2.1. Конфигурация в manifest.json
{"name": "My Extension", ... "разрешения": ["cookies", "*: //*.google.com"], ...}3. Инструменты разработчика
Следующие модули API предоставляют некоторые интерфейсы для инструментов разработчиков, чтобы вы могли расширить инструменты разработчика.
(1) devtools.inspectedWindow
(2) devtools.network
(3) devtools.panels
3.1. Конфигурация в manifest.json
{"name": ... "Version": "1.0", "minimum_chrome_version": "10.0", "devtools_page": "devtools.html", ...}4. События
Событие - это объект, который уведомляет вас, когда вас беспокоит то, что вас беспокоит. Вот пример использования crome.tabs.oncreated события, и объект события уведомляется всякий раз, когда создается новый тег:
chrome.tabs.oncreated.addlistener (function (tab) {appendtolog ('tabs.oncreated -' + 'window:' + tab.windowid + 'tab:' + tab.id + 'index:' + tab.index + 'url:' + tab.url);});Вы можете вызвать следующие методы любого объекта события:
void AddListener (обратный вызов функции (...))) void removeListener (обратный вызов функции (...)) Bool HasListener (обратный вызов функции (...)))
5. Просмотр истории
Модуль chorme.history используется для взаимодействия с записями страниц, доступных браузером. Вы можете добавить, удалить и запрашивать историю браузеров.
5.1. Конфигурация в manifest.json
{"name": "мое расширение", ... "разрешения": ["История"], ...}6. Управление плагинами
Модуль Management Chrome. Предоставляет способ управлять установленными и запущенными расширениями или приложениями. Особенно полезно для переписывания расширений, которые являются встроенными новыми вкладками.
Чтобы использовать этот API, вы должны разрешить его в файле манифеста расширения.
6.1. Конфигурация в manifest.json
{"name": "мое расширение", ... "разрешения": ["Management"], ...}7. Теги
Модуль Chrome Tag используется для взаимодействия с системой тегов браузера. Этот модуль используется для создания, изменения и перестройки тегов в браузере.
7.1. Конфигурация в manifest.json
{"name": "мое расширение", ... "разрешения": ["вкладки"], ...}8. окно
Используйте модуль Chrome.windows для взаимодействия с окном браузера. Вы можете использовать этот модуль для создания, изменения и перестройки окон в браузере.
8.1. Конфигурация в manifest.json
{"name": "мое расширение", ... "разрешения": ["вкладки"], ...}Внедрение уведомлений
1. Два способа создания уведомления:
// Примечание: нет необходимости вызывать webkitnotifications.checkpermission (). // Расширения, которые объявляют разрешения уведомлений, всегда позволяют создавать уведомление. // Создать простое текстовое уведомление: var natification = webkitnotifications.createNotification ('48 .png ', // url значка может быть относительным путем «Привет!», // Название уведомления «Содержание (Lorem ipsum ...)' // 'natification.html' // URL HTML может быть относительным путем); // затем отображать уведомление. уведомление.show ();2. Как общаться с другими страницами:
// в уведомлении ... chrome.extension.getbackgroundpage (). Dothing (); // На фоновой веб -странице ... chrome.extension.getViews ({type: "уведомление"}). Foreach (win) {win.dootherthing ();});3. Пример уведомления о времени
Давайте создадим уведомление о времени, которое появляется напоминаниями каждые 10 секунд, и в общей сложности выпадает 10 раз.
3.1. manifest.json
{// Это поле будет использоваться в диалоговом окне установки, интерфейсе управления расширением и в магазине. Название всплывающего уведомления-«Имя»: «Уведомление о системе», // расширенная версия представлена от одного до 4 чисел, разделенных точками, и должна составлять от 0 до 65535. Ненулевые числа не могут начинаться с «версии»: «1», // строка, которая описывает расширенный тип (не может быть HTML или другого формата и не может превзойти 132 символов). Это описание должно быть подходящим как для интерфейса управления расширением браузера, так и для веб -магазина Chrome. «Описание»: «Показывает уведомления настольных компьютеров, которые являются /« Toast /«Windows, которые появляются на рабочем столе»., // один или несколько значков для представления расширений, приложений и скинов «Иконки»: {«16»: «16.png», // веб -значок FA приложения «48»: «48.PNG», // Нанесение приложения «ICE». // Использование при установке веб -магазина}, // набор разрешений о том, что расширение или приложение будут использовать «разрешения»: [«Вкладки», «Уведомления»], // MANIFEST V2 заменяет FOURICH_PAGE на фоновый атрибут // вот сценарий JavaScript «FOURICH»: {«Scripts»: [FOURICH.JS. Он должен быть указан как 2 «manifest_version»: 2, // manifest_version 2. Укажите путь ресурса, который можно использовать на веб -странице в пакете расширения (относительно корневого каталога пакета расширения), который необходимо использовать для белкого регистрации ресурсов. Сам сценарий вставленного контента не должен быть белым списком "web_accessible_resources": ["48.png"]}3.2. founale.js
/** * Показать уведомление о времени */function show () {var time = new date (). Format ('yyyy-mm-dd hh: mm: ss'); // Создать уведомление var notification = window.webkitnotifications.createNotification ('48 .png ', // picture, добавьте «текущее время в web_accessible_resources:', // time time // body.); // Показать уведомление уведомлений .show ();} // Форматирование даты функции времени. this.getSeconds (), // второй "q+": math.floor ((this.getmonth ()+3)/3), // Quarter "s": this.getMilliseconds () // millisecond} if (/(y+)/. test (format)) format = format.replace (regexp. $ 1, this. Regexp. $ 1.length)); для (var k in o) if (new regexp ("("+ k+ ")"). test (format)) format = format.replace (regexp. $ 1, regexp. $ 1.length == 1? O [k]: ("00"+ o [k]). substr (("+ o [k]). Длина)); вернуть формат;} // проверить, поддерживает ли браузер webKitnotificationsifif (window.webkitnotifications) {// show уведомления show (); var интервал = 0; // всплывающее окно 10 раз VAR Times = 10; // Создать таймер var timer = setInterval (function () {интервал ++; // всплывающее окно один раз через 10 секунд, если (10 <= интервал) {show (); интервал = 0; times-; if (times <-0) clearInterval (timer);}}, 1000);};};};};};};};};исходный код
https://github.com/artinding/google-plugins/tree/master/example/notifications