Tworzenie rozszerzeń do Chrome podstawy
W artykule przedstawię na prostym przykładzie jak w 5 minut stworzyć dodatek
do Chrome.
{
"manifest_version": 2,
"name": "Nazwa dodatku",
"description": "Opis dodatku.",
"version": "1.0",
"permissions": [
"tabs"
],
"browser_action": {
"default_icon": "images/menu.png",
"default_popup": "popup.html"
}
}
Wersja manifestu oznacza tylko, że będziemy korzystać z nowszej wersji api. Podajemy
ponadto nazwę, opis i numer wersji dodatku. Klucz permissions oznacza uprawnienia
jakie nasz dodatek będzie potrzebował (tutaj dostęp do api zakładek).
Ważną częścią są tutaj browser_action. default_icon oznacza ikonę dodatku widoczną
na pasku. Natomiast default_popup określa plik html z zawartością popupu pojawiającego
się po kliknięciu na ikonę dodatku.
Przejdźmy teraz do kolejnych plików. Zawartość pliku popup.html jest bardzo prosta.
<!DOCTYPE html> <html> <head> <script src="js/jquery.js"></script> <script src="js/panel.js"></script> </head> <body> <button id="new_tab">New tab</button> </body> </html>Jest to zwykły dokument html załączający dwa pliki javascript (jquery i panel.js) oraz wyświetlający button.
Korzystając z api Chrome sprawimy aby po kliknięciu na ten przycisk otwierał się nowy pusty tab w przeglądarce. Do tego wystarczy w pliku panel.js napisać coś takiego.
$(function(){
$('#new_tab').click(function(){
chrome.tabs.create({});
});
});
W celu uruchomienia i przetestowania naszego dodatku należy w Chrome wejść do Narzędzia > Rozszerzenia.
Zaznaczyć checkbox "Tryb programisty", kliknąć na przycisk "Wczytaj rozszerzenie bez pakietu" i wybrać
folder z naszym dodatkiem. To wszystko :).
Wiele dodatków udostępnia swoje opcje w menu kontekstowym. Dodamy do naszego dodatku tę funkcjonalność. W tym celu musimy w pliku manifest.json dopisać dodatkowe uprawnienie "contextMenus" oraz dodatkowy skrypt uruchamiany w tle. Obecny plik manifest wygląda następująco.
{
"manifest_version": 2,
"name": "TabCloud",
"description": "TabCloud addon.",
"version": "1.0",
"permissions": [
"tabs",
"contextMenus"
],
"background": {
"persistent": false,
"scripts": ["js/background.js"]
},
"browser_action": {
"default_icon": "images/menu.png",
"default_popup": "popup.html"
}
}
Oczywiście musimy również stworzyć plik background.js o następującej zawartości.
chrome.runtime.onInstalled.addListener(function() {
chrome.contextMenus.create({"title": "Menu item 1", "id": "parent"});
chrome.contextMenus.create({"title": "Menu item 2", "id": "parent2"});
chrome.contextMenus.create({"title": "Menu item 1a", "parentId": "parent", "id": "child1"});
chrome.contextMenus.create({"title": "Menu item 1b", "parentId": "parent", "id": "child2"});
});
chrome.contextMenus.onClicked.addListener(onClickHandler);
function onClickHandler(info, tab) {
alert(info.menuItemId);
};
W zdarzeniu odpowiadającym instalacji dodatku za pomocą chrome.contextMenus.create
dodajemy kolejne pozycje menu. Za obsługę klinięcia w pozycje menu odpowiada funkcja onClickHandler.
Aby przetestować działanie menu załaduj ponownie dodatek (CTRL+R) i kliknij prawym przyciskiem myszy wewnątrz dowolnej karty. Nasze menu powinno być widoczne po wybraniu nazwy dodatku.
