рдХреНрд░реЛрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рддреИрдпрд╛рд░ рдХрд░рдирд╛, рд╣реИрдмрд░ рдХреЛ рд╕рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП

рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Javasctipt, HTML рдФрд░ CSS рдХрд╛ рдиреНрдпреВрдирддрдо рдЬреНрдЮрд╛рди рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдЖрдЗрдП рдЕрдЧрд▓реЗ рдкреГрд╖реНрда рдХреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╡рд░реНрддрдорд╛рди рдкреГрд╖реНрда рдкрд░ рдирдП рдкрджреЛрдВ рдХреЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП Habr рдЬреЛрдбрд╝реЗрдВред рдЬреИрд╕реЗ рдЯреНрд╡рд┐рдЯрд░ рдкрд░ред

рдХреНрд░реЛрдо рд╡реЗрдм рд╕реНрдЯреЛрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддреИрдпрд╛рд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдХрд╛рдо рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдЬрд╛рдВрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ , рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рд╣рдо рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдПрдВрдЧреЗ рдХрд┐ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рдореБрдЦреНрдп рдХреЛрдб рдХреИрд╕реЗ рд▓рд┐рдЦреЗрдВ (рдкреВрд░реНрдг рдХреЗрд╡рд▓ 6 рдХреЗрдмреА рд▓реЗрддрд╛ рд╣реИ)ред




рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рд╣рдорд╛рд░реЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдПрдХ рдЕрд▓рдЧ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдиреЗ рдФрд░ рдЙрд╕рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ .json рдлрд╝рд╛рдЗрд▓ рдбрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

{ "name":"Habrahabr Demo", "version":"0.1", "description":"Demo plugin", "content_scripts":[ { "matches":["http://habrahabr.ru/*"], "css":["style.css"], "js":["jquery.js", "script.js"] } ] } 

рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗрд╡рд▓ habrahabr.ru рдкрд░ рд╕рдХреНрд░рд┐рдп рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЕрдкрдиреЗ рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рдЕрднреА рднреА рд▓рд╛рдкрддрд╛ style.css, script.js рдФрд░ jQuery рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд▓реЛрдб рдХрд░рддрд╛ рд╣реИред Chrome рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдкрд░ рд╢рдкрде рд▓реЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕рдХреЗ рдЖрдЧреЗ рдЦрд╛рд▓реА style.css рдФрд░ script.js рдбрд╛рд▓рддреЗ рд╣реИрдВ рдФрд░ рдирд╡реАрдирддрдо jquery (рдЬреЛ рд╣рдореЗрд╢рд╛ http://code.jquery.com/jquery.js рдкрд░ рд╕реНрдерд┐рдд рд╣реЛрддреА рд╣реИ) рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдореЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВ рдлрд╝реЛрд▓реНрдбрд░ред

рдЕрдм рд╣рдорд╛рд░реЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред рд╣рдо рдХреНрд░реЛрдо рдПрдХреНрд╕рдЯреЗрдВрд╢рди (рдХреНрд░реЛрдо: // рд╕реЗрдЯрд┐рдВрдЧреНрд╕ / рдПрдХреНрд╕рдЯреЗрдВрд╢рди) рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ, рд╡рд╣рд╛рдВ рдПрдХ рдЪреЗрдХрдорд╛рд░реНрдХ рдбрд╛рд▓рддреЗ рд╣реИрдВ, "рдбреЗрд╡рд▓рдкрд░ рдореЛрдб" рдФрд░ "рдЕрдирдкреИрдХрдб рд▓реЛрдб рд▓реЛрдб рдХрд░реЗрдВ ..." рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рд╣рдо рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд╕реНрдерд╛рди рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдореЙрдбреНрдпреВрд▓ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛:

рдЫрд╡рд┐

рд╣рдо рд╣реИрдмрд░ рдХреЛ рд░рд┐рдмреВрдЯ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдо рдЖрд╢реНрд╡рд╕реНрдд рд╣реИрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛ред рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП, style.css рдореЗрдВ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдЬреЛрдбрд╝реЗрдВ:

 #layout { max-width: none !important; } 

рдФрд░ script.js рдореЗрдВ, рдЖрдЗрдП рдмрддрд╛рддреЗ рд╣реИрдВ:

 $(function(){ var username = $("#header .username").text(); $("#header .bottom").append( '<a href="/users/' + username + '/topics/"></a>'+ '<a href="/users/' + username + '/qa/questions/"></a>'+ '<a href="/users/' + username + '/comments/"></a>' ); }); 

рд░реАрд▓реЛрдб рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдкреБрдирдГ рд▓реЛрдб рдХрд░реЗрдВ (рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЖрдЗрдХрди рдХреЗ рдмрд╛рдИрдВ рдУрд░ рдПрдХ рддреНрд░рд┐рдХреЛрдг рдЦреБрд▓рддрд╛ рд╣реИ)ред рдлрд┐рд░ рд╣рдо рд╣реИрдмрд░ рдХреЛ рд░рд┐рдмреВрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд▓реЗрдЖрдЙрдЯ рд░рдмрд░ рдмрди рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЙрдкрдирд╛рдо рдХреЗ рддрд╣рдд рдирдП рд▓рд┐рдВрдХ рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВ (рдпрджрд┐ рдЖрдк рдкрдВрдЬреАрдХреГрдд рд╣реИрдВ)ред

AJAX рдбрд╛рдЙрдирд▓реЛрдб рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝реЗрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо "рд╡рд╣рд╛рдБ" рд▓рд┐рдВрдХ рдкрд░ рдПрдХ рдХреНрд▓рд┐рдХ рд╣реИрдВрдбрд▓рд░ рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдВрдЧреЗ:

 $(document).on("click", "#next_page", function () { var nextPrevBlock = $(".next-prev"); //    / var href = $(this).attr("href"); //    $.ajax({ url:href, success:function (response) { $(".posts").append($(response).find(".posts").html()); //      $(".page-nav").html($(".page-nav", response).html()); //    //   stopTrackingScrollToBottom = false; //     } }); return false; //     }); 

рдЕрдм, рдЬрдм рдЖрдк рдХрд┐рд╕реА рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡рд░реНрддрдорд╛рди рдкреГрд╖реНрда (рдлрд┐рд░ рд╕реЗ, рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдФрд░ рд╣рдм рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓рдирд╛) рдкрд░ рдПрдХ рдирдП рдкреГрд╖реНрда рд╕реЗ рдкреЛрд╕реНрдЯ рдЬреЛрдбрд╝реЗ рдЬрд╛рдПрдВрдЧреЗред рд▓реЛрдбрд┐рдВрдЧ рдЗрдВрдбрд┐рдХреЗрдЯрд░ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрдЪреНрдЫрд╛ рдЕрднреНрдпрд╛рд╕ рд╣реИ, рдпрд╣рд╛рдБ рд╣рдо рдЗрд╕реЗ рд╕рд░рд▓рддрд╛ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗред

рдЕрдЧрд▓рд╛, рдЬрдм рд╣рдо рдкреГрд╖реНрда рдХреЗ рдЕрдВрдд рддрдХ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд▓рд┐рдВрдХ рдкрд░ рд╕реНрд╡рдпрдВ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ

 var stopTrackingScrollToBottom = false; $(window).scroll(function () { if ($(window).scrollTop() + 10 >= ($(document).height() - ($(window).height()))) { //  10     if (stopTrackingScrollToBottom == false) { //        stopTrackingScrollToBottom = true; //        $("#next_page").click(); //     :) } } if ($(window).scrollTop() == 0) { //     checkForNewPosts(); } }); 


рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рджреВрд╕рд░реЗ рднрд╛рдЧ рдХреА рд╢реБрд░реБрдЖрдд рд░рдЦреА - рдкреГрд╖реНрда рдХреА рд╢реБрд░реБрдЖрдд рддрдХ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддреЗ рд╕рдордп рдХреЙрд▓ рдлрд╝реЙрд░ рдиреЛрд╡рдирдкреЛрд╕реНрдЯ ()ред рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╡рд░реНрддрдорд╛рди рдкреГрд╖реНрда рдкрд░ рдирдП рдкрджреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдПрдХ рдмреИрдЬ рдХреЗ рд╕рд╛рде рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:

 function checkForNewPosts(andLoadThem) { if ($(".posts").length == 0) { //      ,  return; } $(".posts").prepend('<div class="new-posts-ajax"><img src="http://isbeauty.ru/images/icon_ajax_loader.gif"/></div>'); $.ajax({ url:window.location.href, success:function (response) { $(".new-posts-ajax").remove(); //              var newPosts = getPostIds(response).diff(getPostIds()); Tinycon.setBubble(newPosts.length); } }); } Array.prototype.diff = function (a) { return this.filter(function (i) { return !(a.indexOf(i) > -1); }); }; function getPostIds(where) { var postIds = []; $(".post", where).each(function () { var postId = $(this).attr("id"); postIds.push(postId); }); return postIds; } 


рдЕрднреА рддрдХ рдХреЛрдИ рдирддреАрдЬрд╛ рдирд╣реАрдВ рдирд┐рдХрд▓рд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ Tinycon.setBubble () рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред рдпрд╣ рдлрд╝реЗрд╡рд┐рдХреЙрди рдореЗрдВ рдПрдХ рдмреИрдЬ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕реЗ рдЯрд╛рдпреАрдХреЙрди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, github рд╕реЗ tinycon.js рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ, рдЗрд╕реЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдлреЛрд▓реНрдбрд░ рдореЗрдВ рд░рдЦреЗрдВ рдФрд░ рдШреЛрд╖рдгрд╛рдкрддреНрд░ рдореЗрдВ tycycon.js рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВред

рдмреИрдЬ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо http://habrahabr.ru/posts/top/daily/ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ (рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╢реАрд░реНрд╖ рдХреЗ рдкрдиреНрдиреЛрдВ рдкрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИ, рд╡реЗ рд╢рд╛рдпрдж рдХреИрд╢ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдмрдбрд╝рд╛ рднрд╛рд░ рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВ)ред рдХреЛрдб рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ (F12) рдЦреЛрд▓реЗрдВ, <div class = "posts"> ... </ div> рдХреЗ рдЕрдВрджрд░ рдХреБрдЫ divs рд╣рдЯрд╛рдПрдВ рдФрд░ рдкреГрд╖реНрда рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд╕реНрдХреНрд░реЙрд▓ рдХрд░реЗрдВред рдмреИрдЬ рдХреЛ рд▓рд╛рдкрддрд╛ рд╡рд┐рд╖рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рджрд░реНрд╢рд╛рдиреА рдЪрд╛рд╣рд┐рдПред

рд╣рдо рдпрд╣ рдЬрд╛рдБрдЪ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рднреА рдХрд░реЗрдВрдЧреЗ, рдПрдХ рдорд┐рдирдЯ рдореЗрдВ:

 var MAX_CHECKS_FOR_NEW_POSTS = 60; //     ,        var CHECK_FOR_NEW_POSTS_EACH = 60; //       $(function () { window.checkNewPostsTimer = setInterval(function () { MAX_CHECKS_FOR_NEW_POSTS--; if (MAX_CHECKS_FOR_NEW_POSTS <= 0) { // self-destroy timer clearInterval(window.checkNewPostsTimer); } else { checkForNewPosts(); } }, CHECK_FOR_NEW_POSTS_EACH * 1000); }); 


рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреЛрдб рдирд╣реАрдВ рдмрдЪрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд╣рд╛рдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдКрдВрдЧрд╛ред рдореБрджреНрджреЗ рдХрд╛ рд╕реМрдВрджрд░реНрдп рдкрдХреНрд╖ рдХрд╡рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдирдП рдкрд╛рдП рдЧрдП рдкрджреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ, рдЕрдЧрд▓реЗ рдкреГрд╖реНрда (рдмрдЯрди рдФрд░ <Esc>) рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреБрдирдГ рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рд░рджреНрдж рдХрд░реЗрдВред рдпрд╣ рд╕рдм рд╕рдорд╛рдкреНрдд рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рд╕реНрд░реЛрдд рдХреЛрдб рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХрд╣реАрдВ рднреА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж рдЙрдкрд▓рдмреНрдз рд╣реИ:
C: \ Users \% USERNAME% \ AppData \ Local \ Google \ Chrome \ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ \ Default \ рдПрдХреНрд╕рдЯреЗрдВрд╢рди \ glaccbllkhielccdhfbbpilnlbemgaji
(рдпрджрд┐ рд╡рд╣рд╛рдБ рдирд╣реАрдВ рд╣реИ, рддреЛ glaccbllkhielccdhfbbpilnlbemgaji рдлрд╝реЛрд▓реНрдбрд░ рдХрд╣реАрдВ рдФрд░ рджреЗрдЦреЗрдВ)ред

рдпрд╣ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдирд┐рдЬреА рдХреБрдВрдЬреА рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕реЗ рдФрд░ рдЖрдкрдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдЕрдкрд▓реЛрдб рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ, "рдкреИрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдФрд░ рдХреБрдВрдЬреА рдЦрд╛рд▓реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрде рдЫреЛрдбрд╝ рджреЗрдВ:

рдЫрд╡рд┐

рдкреИрдХрд┐рдВрдЧ рдХреЗ рдмрд╛рдж, рдХреНрд░реЛрдо рдлрд╛рдЗрд▓ рдХреЛ рдмрдирд╛рдПрдЧрд╛ DemoExtension.crx рдФрд░ DemoExtension.pem, рдмрд╛рдж рдореЗрдВ рдЖрдкрдХреЛ key.pem рдХрд╛ рдирд╛рдо рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЫреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ (рдЗрд╕реЗ рдЦреЛрдирд╛ рдирд╣реАрдВ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдЖрдк рдЗрд╕ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗ)ред рдЙрд╕рдХреЗ рдмрд╛рдж, рдкреВрд░реЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ DemoExtension.zip рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЖрдкрдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдХрдХреНрд╖ рдореЗрдВ рднрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред CRX рдлрд╝рд╛рдЗрд▓ рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИред

рд╕рдВрдЧреНрд░рд╣ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдбреЗрдЯрд╛ рднрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЖрдк рдЗрд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред Chrome рд╡реЗрдм рд╕реНрдЯреЛрд░ рдореЗрдВ рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ $ 5 рдХреЗ рдирд┐рдЧрдо рдХреЗ рдПрдХ рдмрд╛рд░ рдХреЗ рджрд╛рди рдХреЗ рдмрд╛рдж рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рдкрд╣рд▓реЗ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдбреЗрдореЛрдПрдХреНрд╕реНрдЯреЗрдВрд╢рди.crx (рдЬрд╝рд┐рдк рдирд╣реАрдВ) рдХреЛ рдбреНрд░реЙрдкрдмреЙрдХреНрд╕ рдкрд░ рднреА рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрд░реЛрдо рдЗрд╕реЗ рд╕реБрд░рдХреНрд╖рд╛ рдкреБрд╖реНрдЯрд┐ рдХреЗ рдмрд╛рдж рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рджреЗрдЧрд╛ред

рдпрд╣рд╛рдБ рд╡реЗрдм рд╕реНрдЯреЛрд░ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдореЙрдбреНрдпреВрд▓ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

рдЫрд╡рд┐

рдпрд╣ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдкреИрдирд▓ рдореЗрдВ рдмрдЯрди рдирд╣реАрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рди рд╣реА рдбрд╛рдпрд▓реЙрдЧ рдмреЙрдХреНрд╕, рдФрд░ рди рд╣реА рд╕рдВрджрд░реНрдн рдореЗрдиреВ рдореЗрдВ рдЖрдЗрдЯрдо, рдХреЛрдИ рд╕реЗрдЯрд┐рдВрдЧ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рд╕реНрд╡рдпрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдПрдВрдЧреЗ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИред

рдЕрдм рдЖрдЧреЗ рдмрдврд╝реЗрдВ, рд╕рд╛рдЗрдЯреЛрдВ рдХреЛ рдмреЗрд╣рддрд░, рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ, рдЕрдзрд┐рдХ рд╕реБрдВрджрд░ рдмрдирд╛рдПрдВ! :)

Source: https://habr.com/ru/post/In143421/


All Articles