Писане на разширение за google chrome (част 1)

Като чест посетител на уебсайта free-lance.ru би било удобно за мен да получавам известия за нови проекти своевременно. Тъй като използвам браузъра google chrome, първото нещо, което направих, беше да потърся разширения по тази тема за него. Имаше едно разширение за free-lanfe.ru, но беше ужасно сурово и недовършено.

Тъй като няма такъв, реших сам да напиша добавка и да споделя този процес с вас. За първи път написах добавка, така че критиките са добре дошли. По време на разработката използвах документацията от тук.

Веднага ще покажа папката и файловата структура, която получих:

Това ще ви помогне да се ориентирате по-добре в проекта и моите обяснения.

Можете веднага да създадете същата файлова структура с празни файлове, които ние постепенно ще запълним.

Стартираме нашия проект с файлаmanifest.json:

Поставете икона с име icon.png в папката img (или под друго име и в друга папка, при условие че направите съответните промени в конфигурацията във файлаmanifest.json )

Сега нека създадем страницатаoptions.html :

Копиране на източника Копиране на HTML

  1. DOCTYPE html >
  2. html >
  3. глава >
  4. връзка rel="stylesheet" href="img/options.css" />
  5. мета http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  6. глава >
  7. тяло >
  8. div id ="основен">
  9. етикет > Етикет за вход >
  10. въвеждане тип="текст" име="вход">
  11. етикет > Етикет за парола >
  12. въвеждане тип="парола" име="парола">
  13. етикет > Брой показани проекти label >
  14. тип въвеждане ="текст" име ="proj_count" стойност ="15">
  15. етикет > Актуализиране на етикета за време >
  16. изберете име="време_за_актуализация">
  17. стойност на опцията="15000"> 15 сек. опция >
  18. option value="30000"> 30 сек. опция >
  19. option value="60000"> 1 минута. опция >
  20. option value="300000"> 5 минути. опция >
  21. option value="600000"> 10 мин. опция >
  22. option value="1800000"> 30 мин. опция >
  23. option value="3600000"> 1 час опция >
  24. изберете >
  25. входен тип ="изпращане" стойност ="Запазване" id ="запазване">
  26. div >
  27. тяло >
  28. html >

Сега трябва да подобрим малко външния вид на тази страница. И тук, без да знаем, свързахме стиловия файлimg/options.css към него.

Създайте го и го попълнете със следното съдържание:

Копиране на източника Копиране на HTML

  1. *
  2. марж: 0
  3. подложка: 0
  4. размер на шрифта: 13px;
  5. >
  6. тяло
  7. фон: #F3F3FF;
  8. >
  9. #основен
  10. margin: 200px auto auto auto;
  11. подложка: 15px 7px;
  12. ширина: 300px
  13. граница: 2px плътна #F3F3FF;
  14. граница -радиус: 20px;
  15. фон: -webkit-градиент(линеен, ляво горе, ляво долу, от(#D7DCEE), до(#B3BBD5));
  16. -webkit-box-shadow: 0px 0px 9px #888F99;
  17. >
  18. въвеждане, избор
  19. дисплей: блок;
  20. ширина: 240px
  21. поле : 5px 0px 15px 40px ;
  22. подложка: 2px 4px 2px 4px;
  23. фон: #F3F3FF;
  24. фон: -webkit-градиент(линеен, ляво горе, дясно долу, от(#F3F3FF), до(#E7F0F6));
  25. -webkit-box-shadow: 0px 0px 2px #FFF;
  26. граница: 1px плътен #A5B0C9;
  27. граница -радиус: 6px;
  28. цвят : #808090 ;
  29. контур: няма;
  30. размер на шрифта: 14px;
  31. >
  32. въвеждане [type=submit]
  33. ширина: 120px
  34. марж: 25px автоматично 0 40px;
  35. курсор: показалец;
  36. >
  37. вход:фокус, изберете:фокус
  38. рамка : 1px плътен #808090 ;
  39. цвят : #506070 ;
  40. >
  41. input:hover, изберете:hover
  42. фон: #FFF;
  43. >
  44. етикет
  45. размер на шрифта: 15px;
  46. тегло на шрифта: удебелен;
  47. цвят : #506070 ;
  48. марж: 0 0 0 10px;
  49. >

Вече сме готови да качим нашеторазширение вgoogle chrome !

За да направите това, отворете страницата с разширения (Главно меню -> Инструменти -> Разширения) и влезте в режима за програмисти:

Ще видим някои нови бутони. Щракнете върху бутонаЗареди разопаковано разширение и изберете папката с нашето разширение.

Ако всичко беше направено правилно. разширението ще се зареди успешно и ще видите неговата икона в панела заедно с всички други икони на разширение. Сега можем да стигнем до страницата с настройки на разширението, като щракнете върху съответната връзка. Ще видим прозорец със следното съдържание:

Но пак изобщо не става.

Сега трябва да принудим разширението да запази настройките. За простота ще използвамеJQuery. Изтеглете го и го копирайте в папката js. Нека също създадем файлoptions.js в папкатаjs :

Копиране на източника Копиране на HTML

  1. $(функция()
  2. // функция за задаване на стойности на полета според запазените опции в localStorage
  3. var restore_options = function()
  4. var name = $( this ).attr( 'name');
  5. if ( localStorage[име] !== недефинирано)
  6. $( това ).val( localStorage[име]);
  7. >
  8. друго
  9. localStorage[име] = $( това).val()
  10. >
  11. >;
  12. //задаване на стойности на полето (въвеждане и избиране)
  13. $( "input[type!=submit]" ).each( restore_options);
  14. $( "изберете" ).each(restore_options);
  15. // функция за съхраняване на стойности на полета в localStorage
  16. var save_options = function()
  17. var name = $( this ).attr( 'name');
  18. localStorage[име] = $( това).val();
  19. >;
  20. //като щракнете върху изпращането, запазваме полетата и показваме прозорец със съобщение OK
  21. $( "#запазване").click( функция()
  22. $( "input[type!=submit]" ).each( save_options);
  23. $( "изберете" ).each( save_options);
  24. предупреждение ("добре");
  25. >);
  26. >);

Сега трябва да включимJQuery иoptions.js в нашата страница с настройки.

Добавете следните редове към секциятаoptins.html на файла:

Копиране на източника Копиране на HTML

  1. script type="text/javascript" src="js/jquery.js" > скрипт >
  2. script type="text/javascript" src="js/options.js" > скрипт >

Така. Направихме собствено разширение за google chrome. Направете красива страница с настройки за него. Но засега не предоставя полезна информация за нас. Трябва да поправя това! Но това е във втората част на статията.

Коментари

> Добавяне към файловата секция optins.html

Пропуснато „options_page“ в кода: „options.html“, // Страница с настройки

тук не е необходима запетая и Chrom го ругае

Да, Олег, в html има изядени тагове. Извинявам се за пропуска. Парсерът ги изяде.

Фактът, че файловете са в UTF-8 кодировка е a priori.

Като цяло се извинявам за недостатъците в кода, който е представен в текста на статията. Ако имате нужда от 100% работещ код, изтеглете го в края на втората част на статията. Там всичко е един архив и тествано.