GoogleReadere рдкрд░ habrahabr.ru рдХрд╛ рдЯреИрдВрдХрд░

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

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



рд╡рд┐рд╕реНрддрд╛рд░



рдЗрд╕рдореЗрдВ рджреЛ js рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ - contentcript.js рдФрд░ jquery-1.4.2.min.jsред рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдбреЛрдо рдХреЗ рдЖрд╕рдкрд╛рд╕ рдмрд╣реБрдд рдХреБрдЫ рдЪрд▓ рд░рд╣рд╛ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЬрдХреАрд░реА рдХреЛ рдХрд╕рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ (рдореБрдЭреЗ рдЙрд╕рд╕реЗ рдкреНрдпрд╛рд░ рд╣реИ)ред

File Background.html - рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЯреИрдм рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рд▓рдЯрдХрд╛ рд╣реБрдЖред

рдореБрдЦреНрдп рд╡рд┐рд╕реНрддрд╛рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯред Json рдлрд╝рд╛рдЗрд▓ рд╣реИред рдпрд╣ рдЖрдЗрдХрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдкрде рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ HTML рдкреГрд╖реНрда рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рдЖрджрд┐ред рдореЗрд░реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:

 {
   "рдирд╛рдо": "рдХрдЯрд░",
   "рд╕рдВрд╕реНрдХрд░рдг": "0.0.2",
   "рд╡рд┐рд╡рд░рдг": "рдПрдХ рд╕реБрдЦрдж рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЗрдмрд░ рд╕реЗ рдкреВрд░реЗ рдЖрдХрд╛рд░ рдХреЗ рд╕рднреА рд▓реЗрдЦреЛрдВ рдХреЛ рдХреНрд░реЙрдк рдХрд░рддрд╛ рд╣реИред"
   "рдЕрдиреБрдорддрд┐": [
     "рдЯреИрдм", "http://www.google.com/reader/*"
   ]
   "рдЖрдЗрдХрди": {
     "48": "рд╕рд░реНрдк- molot_48.png",
     "128": "рд╕рд░реНрдк- molot_128.png"
   }
   "background_page": "background.html",
   "content_scripts": [
     {
       "рдореИрдЪ": ["http: // * / *"],
       "js": ["contentcript.js"]
     }
     {
       "js": ["jquery-1.4.2.min.js"],
       "рдореИрдЪ": ["http: // * / *", "https: // * / *"]
       "run_at": "document_start"
    }
   ]
 }




рдЖрдк рдЗрд╕ рд▓реЗрдЦ рд╕реЗ рдХреНрд░реЛрдо рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рди рд╕рдХрддреЗ рд╣реИрдВ ред



рдпрд╣ рд╕рдм рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ



рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдкрд╛рдардХ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рдереЛрдбрд╝рд╛ рдмрджрд▓ рджреЗрдВред рд╣рдо "рдореИрдЬрд┐рдХ" рд▓рд┐рдВрдХ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕ рдкрд░ рдСрди-рдХреНрд▓рд┐рдХ рд╣реИрдВрдбрд▓рд░ рд▓рдЯрдХрд╛рддреЗ рд╣реИрдВред

 $ ("# gbg")ред ("<div style = 'рдорд╛рд░реНрдЬрд┐рди-рдЯреЙрдк: 10px;"> <a href ='javascript: void (0)' id ='special-magic'> рд╡рд┐рд╢реЗрд╖ рдЬрд╛рджреВ) </ div> ")
 $ ('# рд╡рд┐рд╢реЗрд╖-рдЬрд╛рджреВ')ред рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ (рдлрд╝рдВрдХреНрд╢рди () {
    $ ("рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐-рд╢реАрд░реНрд╖рдХ")ред рдкреНрд░рддреНрдпреЗрдХ (рдлрд╝рдВрдХреНрд╢рди () {
       var рд▓рд┐рдВрдХ = $ (рдпрд╣) .children ("ред рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐-рд╢реАрд░реНрд╖рдХ-рд▓рд┐рдВрдХ")ред Attr ('href')
          if ($ (рдпрд╣) .parent ("div")ред findред ("raskukozzz")ред attr ("рд╡рд░реНрдЧ")! = "raskukozzz") {
             $ (рдпрд╣)ред рдмрд╛рдж рдореЗрдВ ($ ("<a href='javascript:void(0)' class='raskukozzz'> рдмрдХрд╡рд╛рд╕ </a>") .click (рдлрд╝рдВрдХреНрд╢рди () {
	           chrome.extension.sendRequest ({'action': 'fetchTwitterFeed', 'uri': link}, onText);
                })
            )
	 }
    })
 })



chrome.extension.sendRequest ({'action': 'fetchTwitterFeed', 'uri': link}, onText); - рдХреНрд░реЛрдо рдЯреВрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдВред рдлрд┐рд░ рд╣рдо рдЕрдиреБрд░реЛрдз рдХреА рдШрдЯрдирд╛рдУрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрддреЗ рд╣реИрдВ: chrome.extension.onRequest.addListener (onRequest);

 рд╕рдорд╛рд░реЛрд╣ fetchwitterFeed (рдХреЙрд▓рдмреИрдХ, рдЙрд░реА) {
    	 var url = uri;
         var xhr = new XMLHttpRequest ();
         xhr.onreadystatechange = function (рдбреЗрдЯрд╛) {
           рдЕрдЧрд░ (xhr.readyState == 4) {
           
               var data = xhr.responseText;
               рдХреЙрд▓рдмреИрдХ (рдбреЗрдЯрд╛, рдпреВрдЖрд░рдПрд▓);
           }
         }
         xhr.open ('GET', url, true);
         xhr.send ();
       };

       рд╕рдорд╛рд░реЛрд╣ рдкрд░ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ (рдЕрдиреБрд░реЛрдз, рдкреНрд░реЗрд╖рдХ, рдХреЙрд▓рдмреИрдХ) {
         рдЕрдЧрд░ (request.act == 'fetchTwitterFeed') {
           fetchTwitterFeed (рдХреЙрд▓рдмреИрдХ, request.uri);
         }
       };

       chrome.extension.onRequest.addListener (onRequest);


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

 $ ("# рдкреНрд░реАрд▓реЛрдб-рдлрд╝реНрд░")ред html ($ (рд╕рдорд╛рдЪрд╛рд░) .find ("div.hentry")ред html ())
 $ ("# рдкреНрд░реАрд▓реЛрдб-рдлреНрд░")ред рд╢реЛ (500)


рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ



рдкрд╛рдардХ рдореЗрдВ, рд╣рдмреНрд░рд╣рд╛ рдлрд╝реАрдб рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ "рд╡рд┐рд╢реЗрд╖ рдЬрд╛рджреВ" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ

рдЫрд╡рд┐

рдЙрд╕рдХреЗ рдмрд╛рдж, рдкреНрд░рддреНрдпреЗрдХ рд╢реАрд░реНрд╖рдХ рдХреЗ рддрд╣рдд "рдмрдХрд╡рд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП" рд▓рд┐рдВрдХ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ

рдЫрд╡рд┐

рдЬрдм рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рдорд╛рдЪрд╛рд░ рдХреЗ рдкреВрд░реНрдг рдкрд╛рда рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рдВрдбреЛ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред рдЫрд╡рд┐



рдореБрдЭреЗ рдпрд╣ рд╕рдм рдХрд╣рд╛рдВ рд╕реЗ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ



рдкреНрд▓рдЧрдЗрди рдЧреИрд▓рд░реА рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдбрд╛рдЙрдирд▓реЛрдб ред рдПрдХ рдЕрдзрд┐рдХ рд▓рдЧрд╛рддрд╛рд░ рдЕрджреНрдпрддрди Google рдХреЛрдб рд╣реЛрдЧрд╛ ред



рднрд╡рд┐рд╖реНрдп рдХреА рдпреЛрдЬрдирд╛



1. рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпреЗ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рд╣реИрдВред рдмрд┐рдирд╛ рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд╣рдмрд░ рдХреЛрдИ рдХреЗрдХ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдПрдХ рдШрдВрдЯреЗ рдХрд╛ рдЦрд╛рд▓реА рд╕рдордп рдорд┐рд▓реЗрдЧрд╛ рдФрд░ рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░реВрдБрдЧрд╛ - рдХрд┐рдпрд╛!

2. рдЕрдиреНрдп рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рд╕рд╛рде рдорд┐рддреНрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВред

3. рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЬреЛрдбрд╝реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: рдЦрд┐рдбрд╝рдХреА рдХрд╛ рдЖрдХрд╛рд░, рдлреНрд░реЗрдо, рдкреГрд╖реНрдарднреВрдорд┐, рдЯрд┐рдкреНрдкрдгреА рджрд┐рдЦрд╛рдПрдВ рдЖрджрд┐ред

4. рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдЬреЛ рдкрд╛рдардХ рдХреЗ рд╡рд┐рд╖рдп рдХреЛ рдмрджрд▓ рджреЗрдЧрд╛ред



рдпреВрдкреА рез ред рд▓рд┐рдВрдХ рдХрд╛ рд╕реНрдерд╛рди рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ, рдЕрдм рдпрд╣ рджреВрд╕рд░реА рддрд╕реНрд╡реАрд░ рдХреА рддрд░рд╣ рд╣реИред

рдпреВрдкреА реи ред рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдорджрдж рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣рд╛рдБ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред

рдпрд╣рд╛рдБ рдЗрд╕рдХреЗ рдЬреЛрдбрд╝ рдФрд░ рд╕реБрдзрд╛рд░ рд╣реИрдВ:

- рд╕реАрдПрд╕рдПрд╕ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдлрд╛рдЗрд▓ рдореЗрдВ рд▓реЗ рдЬрд╛рдпрд╛ рдЧрдпрд╛

- рдмреВрдЯ рдкрд░ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдПрдиреАрдореЗрд╢рди

- рдкреБрд░рд╛рдиреЗ рдкреЗрдЬ рд▓реЛрдбрд┐рдВрдЧ рдореИрдХреЗрдирд┐рдЬреНрдо рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рдЖрдИрдлреНрд░реЗрдо рдХреЗ рд╕рд╛рде рдорд╛рдЗрдХреНрд░реЛрдмреНрд░реИрдм рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ :)

- рдереЛрдбрд╝рд╛ рдкреГрд╖реНрда рдкреБрдирдГ рд▓реЛрдб рдХрд┐рдпрд╛, рдПрдХ рд╡рд┐рдВрдбреЛ рд╕рдорд╛рдкрди рдЖрдЗрдХрди рдЬреЛрдбрд╝рд╛

- Esc рджреНрд╡рд╛рд░рд╛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╡рд┐рдВрдбреЛ рдХреНрд▓реЛрдЬрд┐рдВрдЧ

- рдПрдХ рдЪреЗрдХ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рддрд╛рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдЦрд╛рдмрд░реЛрд╡рд╕реНрдХреА рдЯреЗрдк рдкрд░ рдХрд╛рдо рдХрд░реЗ



рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЧреИрд▓рд░реА рдореЗрдВ рд╣реИ



рдФрд░ рдЦрд┐рдбрд╝рдХреА рдЕрдм рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:

рдЫрд╡рд┐



рдЕрднреА рднреА рдкреЛрд╕реНрдЯреЛрдВ рдкрд░ "рд╡рд╛рдкрд╕" рдФрд░ "рдЖрдЧреЗ" рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдЯрди рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ

рдпреВрдкреА рей ред рдкреНрд▓рдЧрдЗрди рдХреЛ рдХреБрдЫ рдмрдЧ рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдЧреИрд▓рд░реА рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ Google рдХреЛрдб рдкрд░ рджрд┐рдЦрд╛рдИ рджреАред

рдпреВрдкреА 4 ред рдкреНрд▓рдЧрдЗрди рдлрд┐рд░ рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред



All Articles