- Сообщения
- 14,076
- Реакции
- 5,783
Привет.
Сегодня пробуем писать плагин под собственные нужды,ну а раз нам надо на чем то научиться то заодно займемся немножко имиджевым вопросом.
Напишем плагин для нашего любимого сайта.
Этап первый.
Создайте в удобном месте папку,эта папка будет служить нам плацдармом для оперативных действий - это каталог для нашего расширения.
Нам понадобится так же создать еще одну папку внутри,назовем ее Icon,как вы понимаете из названия эта папка будет содержать в себе разного рода изображения которые мы будем использовать.
Так же нам понадобится создать несколько файлов:
Для работы с файлами понадобится текстовый редактор,лично я использую notepad++
Итак,открываем файл manifest.json.
Это файл манифеста,основа нашего плагина.
От него как корни будут писаться остальные части.
Вбиваем туда код:
Код хорошо закомментирован,так что в особой расшифровке не нуждается,единственное - если у вас файлы изображений не соответствуют требуемому размеру то отображаться они не будут.
popup.html - это обычная html страничка,которая будет появляться при нажатии на иконку плагина рядом с адресной строкой браузера.
Надо заметить что эта страничка немного урезана в функционале,так что сложный код не воспринимает.
Но зато умеет переходить к другим страничка,расположенным в папке.
Можно использовать это для некоторого опционала плагина например.
В нашем случае код ее будет таков:
Думаю комментировать код html не буду,так как все легко находится в поисковиках.
Более того наверняка каждый захочет сам под себя ее изменить.
Но если таки будут вопросы - задавайте.
Далее background.html.
Это фоновая страница,которая выполняется при загрузке браузера,код ее у нас таков:
Здесь мы указали js скрипт,который будет выполняться при загрузке background.html
Это файл code.js
Его содержимое таково:
Тут мы подключим контексное меню,другие опции...
Этап второй
Открываем браузер (Google Chrome или любой на его базе),заходим в настройки - расширения.
Ставим галочку "Режим разработчика"
Далее жмем "Загрузить распакованное расширение" ,указываем путь к папке с плагином.
Жмем ОК и готово.
Если это в первый раз - то будет создан ключ.
============================================
Вот весь исходник целиком:
sz_code.rar
А вот уже скомпиллированный плагин:
sz.rar
Его можно просто распаковать и перетащить мышкой в окно настроек браузера,плагин установится.
Появится в панели браузера,в расширениях,соответственно станут доступны опции плагина - как в панели рядом с адресной строкой,так и в контексном меню браузера.
Далее плагин будет усовершенствоваться по желанию пользователей если таковые будут и думаю будет оформлен в магазине гугл хром.
p.s. для мозиллы тоже планируется.
Сегодня пробуем писать плагин под собственные нужды,ну а раз нам надо на чем то научиться то заодно займемся немножко имиджевым вопросом.
Напишем плагин для нашего любимого сайта.
Этап первый.
Создайте в удобном месте папку,эта папка будет служить нам плацдармом для оперативных действий - это каталог для нашего расширения.
Нам понадобится так же создать еще одну папку внутри,назовем ее Icon,как вы понимаете из названия эта папка будет содержать в себе разного рода изображения которые мы будем использовать.
Так же нам понадобится создать несколько файлов:
- manifest.json
- popup.html
- background.html
- code.js
Для работы с файлами понадобится текстовый редактор,лично я использую notepad++
Итак,открываем файл manifest.json.
Это файл манифеста,основа нашего плагина.
От него как корни будут писаться остальные части.
Вбиваем туда код:
JavaScript:
{
"manifest_version": 2, // версия манифеста,обязательная строка
"name": "SafeZone плагин", //Имя продукта - нашего плагина
"version": "0.1", //Версия продукта
"description": "Плагин разрабатывается для sz", //Описание нашей разработки
"icons" : {
"16" : "icon/16.png",
"48" : "icon/48.png",
"128" : "icon/128.png"
}, // Тут,соответственно мы указываем путь и имя картинок.
"browser_action": {
"default_title": "SafeZone plugins", // Заголовок. Его видно если навести курсор на иконку в браузере
"default_popup": "popup.html", // Путь к странице с popup.html - страничке которая будет
// появляться при нажатии на иконку плагина в адресной строке
"default_icon": "icon/48.png" // Путь к иконке расширения в адресной строке
},
"permissions": [ // настройки разрешений
"tabs" , // работает в каждой открытой вкладке
"bookmarks" ,
"http://www.safezone.cc/" ,
"http://*.google.com/" , //список адресов,к которым можно будет обращаться
"unlimitedStorage", //Снимаем ограничение наобъем кэшированных данных для сайтов 5 МБ.
"http://*",
"http://*/*",
"https://*",
"https://*/*",
"contextMenus", //подключаем контексное меню
"notifications" //подключаем уведомления
],
"background": {
"page": "background.html" //указываем имя и адрес страницы,выполняемой в фоновом режиме (невидимая)
},
"content_security_policy": "default-src 'self'"
}
Код хорошо закомментирован,так что в особой расшифровке не нуждается,единственное - если у вас файлы изображений не соответствуют требуемому размеру то отображаться они не будут.
popup.html - это обычная html страничка,которая будет появляться при нажатии на иконку плагина рядом с адресной строкой браузера.
Надо заметить что эта страничка немного урезана в функционале,так что сложный код не воспринимает.
Но зато умеет переходить к другим страничка,расположенным в папке.
Можно использовать это для некоторого опционала плагина например.
В нашем случае код ее будет таков:
HTML:
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
</head>
<title>SafeZone плагин</title>
<body style='margin: 0 auto; width: 100%;'>
<div>
<button><a href="http://www.safezone.cc" target="_blank"><img src="icon/1.png" alt="SafeZone" width="100%" height="10%"
style="vertical-align: middle"> </a></button></p>
<div/>
<HR WIDTH="90%" ALIGN="center" SIZE="0">
<li><a href="http://safezone.cc/account/alerts" target="_blank">Оповещения
</strong></a></li>
<li><a href="http://safezone.cc/account/" target="_blank">Профиль
</strong></a></li>
<li><a href="http://safezone.cc/conversations/" target="_blank">Личные сообщения
</strong></a></li>
<li><a href="https://www.facebook.com/safezonecc" target="_blank">SafeZone на FaseBook
</strong></a></li>
<HR WIDTH="90%" ALIGN="center" SIZE="2">
<div>
<input type="checkbox" id="index1" checked="checked" />
<input type="text" id="index1" class="input_date" value="" />
Поиск
</div>
<HR WIDTH="320px" ALIGN="center" SIZE="0">
</body>
</html>
Думаю комментировать код html не буду,так как все легко находится в поисковиках.
Более того наверняка каждый захочет сам под себя ее изменить.
Но если таки будут вопросы - задавайте.
Далее background.html.
Это фоновая страница,которая выполняется при загрузке браузера,код ее у нас таков:
HTML:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="code.js"></script>
</head>
<body></body>
</html>
Здесь мы указали js скрипт,который будет выполняться при загрузке background.html
Это файл code.js
Его содержимое таково:
JavaScript:
// Общая функция OnClick обратного вызова.
function genericOnClick(info, tab) {
console.log("item " + info.menuItemId + " was clicked");
console.log("info: " + JSON.stringify(info));
console.log("tab: " + JSON.stringify(tab));
}
// Создаем пункт меню перехода на sz
var contexts = ["page","selection"];
for (var i = 0; i < contexts.length; i++) {
var context = contexts[i];
var title = "Перейти на SafeZone.cc";
var id = chrome.contextMenus.create({"title": title, "contexts":[context],
"onclick": opensz});
}
//////////////////////////////////////////////////////////////////////////////////
// Создаем действие с меню для определенных типов файлов
//var contexts = ["page","selection","link","editable","image","video",
// "audio"];
//for (var i = 0; i < contexts.length; i++) {
//var context = contexts[i];
//var title = "Действие для'" + context + "'которое возможно";
// var id = chrome.contextMenus.create({"title": title, "contexts":[context],
// "onclick": genericOnClick});
// console.log("'" + context + "' item:" + id);
//}
// Создаем раскрывающееся контексное меню.
var parent = chrome.contextMenus.create({"title": "Поиск:"});
var child1 = chrome.contextMenus.create(
//{"title": "Перейти на SafeZone.cc", "parentId": parent, "onclick": Menu1});
//var child2 = chrome.contextMenus.create(
{"title": "Открыть поиск по SafeZone", "parentId": parent, "onclick": Menu2});
var child3 = chrome.contextMenus.create(
{"title": "Открыть поиск по Yandex", "parentId": parent, "onclick": Menu3});
var child4 = chrome.contextMenus.create(
{"title": "Открыть поиск по Google", "parentId": parent, "onclick": Menu4});
function opensz(info, tab) {
window.open('http://safezone.cc/');
};
function Menu1(info, tab) {
window.open('http://safezone.cc/');
};
function Menu2(info, tab) {
window.open('https://www.google.com:443/cse/publicurl?cx=011665641833326316287:1ay2gmqz5qu','info','height=520,width=520');
};
function Menu3(info, tab) {
window.open('http://www.ya.ru/','info','height=520,width=520');
};
function Menu4(info, tab) {
window.open('https://www.google.com/search','info','height=520,width=520');
};
console.log("About to try creating an invalid item - an error about " +
"item 999 should show up");
chrome.contextMenus.create({"title": "Oops", "parentId":999}, function() {
if (chrome.extension.lastError) {
console.log("Got expected error: " + chrome.extension.lastError.message);
}
});
Тут мы подключим контексное меню,другие опции...
Этап второй
Открываем браузер (Google Chrome или любой на его базе),заходим в настройки - расширения.
Ставим галочку "Режим разработчика"
Далее жмем "Загрузить распакованное расширение" ,указываем путь к папке с плагином.
Жмем ОК и готово.
Если это в первый раз - то будет создан ключ.
============================================
Вот весь исходник целиком:
sz_code.rar
А вот уже скомпиллированный плагин:
sz.rar
Его можно просто распаковать и перетащить мышкой в окно настроек браузера,плагин установится.
Появится в панели браузера,в расширениях,соответственно станут доступны опции плагина - как в панели рядом с адресной строкой,так и в контексном меню браузера.
Далее плагин будет усовершенствоваться по желанию пользователей если таковые будут и думаю будет оформлен в магазине гугл хром.
p.s. для мозиллы тоже планируется.
Вложения
Последнее редактирование: