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