рд╢реБрдн рджреЛрдкрд╣рд░, рд╣рдмреНрд░ред
рдореИрдВ Google Chrome рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдмрдирд╛рдиреЗ рдкрд░ рдХрдИ рд▓реЗрдЦ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд▓рд╛рднреЛрдВ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рдж рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рд╕рдВрдХреЗрдд рдорд┐рд▓рддрд╛ рд╣реИ: рдЖрдк рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЕрдиреНрдп рдХреМрди рд╕реЗ рдХрд╛рд░реНрдп рд╣рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рджреВрд╕рд░рд╛, рд░реВрд╕реА рдореЗрдВ рдХрд┐рд╕реА рднреА рд╕рдордЭрджрд╛рд░ рдЧрд╛рдЗрдб, рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ред , рд╕рд┐рд╡рд╛рдп, рд╢рд╛рдпрдж,
рдпрд╣ рдФрд░ рд╣реИрдмреЗ рдкрд░
рдпрд╣ рд▓реЗрдЦред рдЪрдХреНрд░ рдХрд╛ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдирд╛ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдирд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣реИрдмрд░ рдЗрдВрдбреЗрдХреНрд╕ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ :)
рдкрд╣рд▓реЗ (рдпрд╣, рд╡рд╣) рд▓реЗрдЦ рдореЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд░рд▓рддрдо рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рд╡рд┐рд╕реНрддрд╛рд░, рдбрд┐рдмрдЧрд┐рдВрдЧ рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рднреА рдореБрдЦреНрдп рдмрд┐рдВрджреБрдУрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ.рдЬреЙрд╕рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдФрд░ рдХреНрд░реЛрдо рдХреА рд╢реБрд░реБрдЖрддред * рдПрдкреАрдЖрдИред рдкрд╣рд▓рд╛ рд▓реЗрдЦ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдЕрдиреБрднрд╡реА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реЛрдЧрд╛ (рдпрд╣ рдПрдХ рдЕрд╕реНрд╡реАрдХрд░рдг рд╣реИ)ред
рдирдорд╕реНрддреЗ рджреБрдирд┐рдпрд╛
рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдЕрднреНрдпрд╛рд╕ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП, рджреЗрд░реА рдХреЗ рдмрд┐рдирд╛, рд╣рдо рд╣реЗрд▓реЛ_рд╡рд░реНрд▓реНрдб рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рдореЗрдВ рдкрд╛рда рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕реЗ рджреЗрдЦреЗрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ:
{ "name" : "Hello world",
рдпрд╣ рдПрдХ рдиреНрдпреВрдирддрдо рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реИред рдпрджрд┐ рдЖрдк "рд░рд┐рдВрдЪ тЖТ рдЯреВрд▓реНрд╕ тЖТ рдПрдХреНрд╕рдЯреЗрдВрд╢рди" рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЪреЗрдХрдмреЙрдХреНрд╕ "рдбреЗрд╡рд▓рдкрд░ рдореЛрдб" рд╕реЗрдЯ рдХрд░реЗрдВ, рдмрдЯрди "рдЕрдирдкреИрдХреНрдб рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ ..." рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рд╣рдорд╛рд░реЗ "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб" рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдлрд┐рд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рд▓реЛрдЧреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛, рд▓реЗрдХрд┐рди рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдпрд╣ рдЕрднреА рддрдХ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ред

рд╣рдо рд╕реАрдЦрддреЗ рд╣реИрдВ рдФрд░ рдмрд╣рд╕ рдХрд░рддреЗ рд╣реИрдВ
рдФрд░ рдЪреВрдБрдХрд┐ рд╡рд╣ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЙрд╕реЗ рдХреИрд╕реЗ рдкрдврд╝рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ .json:
{ "name" : "Hello world", "version" : "1.0", "description" : "This is a simple chrome extention", "background_page" : "background.html" }
рдФрд░ рдПрдХ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдбред Html рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ рдЬреЛ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреЗрдЧрд╛ рдЬреЛ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдореЗрдВ рдЪрд▓рддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣:
<script type="application/javascript"> window.onload = function() { window.setInterval( function() { console.log("Hello world"); }, 10000); } </script>
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб.html рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдПрдХ рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЕрд░реНрдерд╛рдд, рдЬрдм рдЖрдк рджреВрд╕рд░рд╛ рдЯреИрдм рдпрд╛ рд╡рд┐рдВрдбреЛ рдЦреЛрд▓реЗрдВрдЧреЗ, рддреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд┐рд░ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рд╣реЛрдЧреАред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡рд╣ рдкреНрд░рддреНрдпреЗрдХ 10 рд╕реЗрдХрдВрдб рдореЗрдВ рд╕рд╛рдВрддреНрд╡рдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд╡рд┐рддреНрд░ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рд▓рд┐рдЦреЗрдВрдЧреЗ, рдФрд░ рдЗрд╕ рддрд░рд╣ рд╕реЗ, рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред
рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП,
рдХреНрд░реЛрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ
: // рдПрдХреНрд╕рдЯреЗрдВрд╢рди / рд╕реЗрд╡рд╛ рдкреГрд╖реНрда рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдбреЗрд╡рд▓рдкрд░ рдореЛрдб рд╕рдХреНрд╖рдо рд╣реИред

рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдпрд╣ "рд░рд┐рдВрдЪ" рд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░ рдкреНрд░рдмрдВрдзрди рдкреГрд╖реНрда рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рд╖рдпрдЧрдд рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рдпрд╣ рдЕрдзрд┐рдХ рдкрд╕рдВрдж рд╣реИред рдХрд┐рд╕реА рддрд░рд╣ рдЕрдзрд┐рдХ рдХреЙрдореНрдкреИрдХреНрдЯ, рдпрд╛ рдХреНрдпрд╛?
рдпрд╣рд╛рдВ рд╣рдо рджреЛ рдкрджреЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ: рдЖрдВрддрд░рд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде "рдЖрдИрдбреА" рд▓рд╛рдЗрди рдФрд░ "рд╕рдХреНрд░рд┐рдп рдЬрд╛рдВрдЪ рдореЛрдб рджреЗрдЦреЗрдВ" рдЙрдкрдзрд╛рд░рд╛ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВред рд╣рдордиреЗ рдмрдирд╛рдпрд╛ рдФрд░, рдЙрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ, рд╣рдо рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╣реЙрд▓рд╡рд░реНрд▓реНрдб рдХрдВрд╕реЛрд▓ рдХреЛ рд▓рд┐рдЦрддреА рд╣реИ:

рдХреНрд░реЛрдо-рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ: //
рдЖрдИрдбреА /
рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдкреНрд░рд╛рд░реВрдк рд╣реЗрдбрд░ред рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЖрдЗрдбреЗрдВрдЯрд┐рдлрд╛рдпрд░ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЬрд╛рдирдХрд░ рдЖрдк рдЗрд╕рдХреА рдХрд┐рд╕реА рднреА рдлрд╛рдЗрд▓ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░ рд╕реЗ, рдпрд╣ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЗрдВрдЯрд░реИрдХреНрд╢рди
рдЬрдмрдХрд┐ рд╣рдорд╛рд░рд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдЪреАрдЬрд╝ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ, рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкрд░рд┐рджреГрд╢реНрдп рдХреЛ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдирд╛ред рдЗрд╕рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ рдЗрд╕рдХреЗ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреНрд░реЛрдо рдХреЗ рд╕рд╛рде рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред * рдПрдкреАрдЖрдИред рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, chrome.browserAction рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рдВрдбреЛ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХреЛ рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
{ "name" : "Hello world", "version" : "1.0", "description" : "This is a simple chrome extention", "background_page" : "background.html", "browser_action" : { "default_title" : "Hello world!!!",
Popup.html рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓рдирд╛ (рдЗрд╕реЗ рдЕрднреА рдХреЗ рд▓рд┐рдП рдЦрд╛рд▓реА рдЫреЛрдбрд╝ рджреЗрдВ) рдФрд░ рдЖрдЗрдХрди рдХреЛ img рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд░рдЦреЗрдВ,
рдХреНрд░реЛрдо рдкрд░ "рд░реАрд▓реЛрдб" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
: // рдПрдХреНрд╕рдЯреЗрдВрд╢рди / рдкреГрд╖реНрда рдФрд░ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦреЗрдВред рд╣рдорд╛рд░реЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЖрдЗрдХрди рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдкреИрдирд▓ рдкрд░ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рдФрд░ рдЬрдм рдЖрдк рдЙрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдЦрд╛рд▓реА рдкреЙрдк-рдЕрдк рд╡рд┐рдВрдбреЛ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЪрд┐рд╣реНрди рдЬреЛ рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ:

рдпрд╣ рд╕рдм рд▓рд┐рдкрд┐рдпреЛрдВ рд╕реЗ chrome.browserAction рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ:
<script type="text/javascript"> chrome.browserAction.setTitle({title:"New title"}); </script>
рдЕрднреНрдпрд╛рд╕ рдХреЗ рд▓рд┐рдП, рдЪрд▓реЛ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдмрдирд╛рддреЗ рд╣реИрдВред рдХрдВрд╕реЛрд▓ рдореЗрдВ рд╕рд┐рд░реНрдл рдмрдХрд╡рд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рдХрд░реЗрдВред рдпрд╣рд╛рдВ, рдХрдо рд╕реЗ рдХрдо рдПрдХ рдШрдбрд╝реАред рдЖрдЗрдХрди рдХреЗ рдКрдкрд░ рдорд┐рдирдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рдПрдЧреА, рдЬрдм рдЖрдк рд╣реЛрд╡рд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдордп рдкреНрд░рд╛рд░реВрдк HH: MM: SS рдФрд░ рдкреЙрдк-рдЕрдк рд╡рд┐рдВрдбреЛ рдореЗрдВ, рддреАрд░ рдХреЗ рд╕рд╛рде рдШрдбрд╝реА рд╣реИред
background.html <script type="application/javascript"> window.onload = function() { window.setInterval( function() { var now = new Date(); var h = now.getHours(); var m = now.getMinutes(); var s = now.getSeconds(); var badge_text = (m < 10 ? "0" + m : m).toString(); var title_text = (h < 10 ? "0" + h : h) + ":" + (m < 10 ? "0" + m : m) + ":" + (s < 10 ? "0" + s : s); chrome.browserAction.setBadgeText({text: badge_text}); chrome.browserAction.setTitle({title: title_text}); }, 1000); } </script>
popup.html <!DOCTYPE html> <html> <head> <style type="text/css"> * { margin: 0; padding: 0; border: 0; } body { background: #000; } </style> <script type="text/javascript"> Clock = function() { this.canvas = false; this.pi = Math.PI; } Clock.prototype = { get_time: function() { var now = new Date(); var result = { milliseconds: now.getMilliseconds(), seconds: now.getSeconds(), minutes: now.getMinutes(), hours: now.getHours() } return result; }, init: function() { this.canvas = document.getElementById("clock").getContext("2d"); }, draw: function() { var now = this.get_time(); var hangle = (this.pi/6)*now.hours + (this.pi/360)*now.minutes + (this.pi/21600)*now.seconds + (this.pi/21600000)*now.milliseconds; var mangle = (this.pi/30)*now.minutes + (this.pi/1800)*now.seconds + (this.pi/1800000)*now.milliseconds; var sangle = (this.pi/30)*now.seconds + (this.pi/30000)*now.milliseconds; this.canvas.save(); this.canvas.fillStyle = "#000"; this.canvas.strokeStyle = "#000"; this.canvas.clearRect(0,0,200,200); this.canvas.fillRect(0,0,200,200); this.canvas.translate(100,100); this.canvas.rotate(-this.pi/2); this.canvas.save(); this.canvas.rotate(hangle); this.canvas.lineWidth = 8; this.canvas.strokeStyle = "#ffffff"; this.canvas.fillStyle = "#ffffff"; this.canvas.lineCap = "round"; this.canvas.beginPath(); this.canvas.moveTo(-10,0); this.canvas.lineTo(50,0); this.canvas.stroke(); this.canvas.restore(); this.canvas.save(); this.canvas.rotate(mangle); this.canvas.lineWidth = 4; this.canvas.strokeStyle = "#ffffff"; this.canvas.lineCap = "square"; this.canvas.beginPath(); this.canvas.moveTo(-20,0); this.canvas.lineTo(75,0); this.canvas.stroke(); this.canvas.restore(); this.canvas.save(); this.canvas.lineWidth = 2; this.canvas.strokeStyle = "#ffffff"; this.canvas.fillStyle = "#333"; this.canvas.beginPath(); this.canvas.arc(0,0,8,0,this.pi*2,true); this.canvas.fill(); this.canvas.stroke(); this.canvas.restore(); this.canvas.save(); this.canvas.rotate(sangle); this.canvas.lineWidth = 2; this.canvas.strokeStyle = "#ff0000"; this.canvas.lineCap = "square"; this.canvas.beginPath(); this.canvas.moveTo(-30,0); this.canvas.lineTo(85,0); this.canvas.stroke(); this.canvas.restore(); this.canvas.save(); this.canvas.lineWidth = 6; this.canvas.fillStyle = "#ff0000"; this.canvas.beginPath(); this.canvas.arc(0,0,3,0,this.pi*2,true); this.canvas.fill(); this.canvas.restore(); this.canvas.save(); this.canvas.lineWidth = 6; this.canvas.strokeStyle = "#ffffff"; this.canvas.beginPath(); this.canvas.arc(0,0,95,0,this.pi*2,true); this.canvas.stroke(); this.canvas.restore(); this.canvas.restore(); } } window.onload = function() { var clock = new Clock(); clock.init(); window.setInterval(function() { clock.draw(); }, 10); } </script> </head> <body> <canvas id="clock" width="200" height="200"></canvas> </body> </html>
рд╕реЗрд╡, рд░рд┐рд╕реНрдЯрд╛рд░реНрдЯ, рдЪреЗрдХ - рдмреНрдпреВрдЯреА!

рджрд░рдЕрд╕рд▓, рд╣рдордиреЗ рдПрдХ рд╕рд░рд▓ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛ (рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдпрд╛рдж рдХрд┐рдП рдЧрдП рдХреИрдирд╡рд╛рд╕)ред рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рд╡рд┐рддрд░рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд░реВрдк рдореЗрдВ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ - рдкреИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╣реА рдкреГрд╖реНрда рдкрд░
рдХреНрд░реЛрдо: // рдПрдХреНрд╕рдЯреЗрдВрд╢рди / "рдкреИрдХрд┐рдВрдЧ рдПрдХреНрд╕рдЯреЗрдВрд╢рди ..." рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА (рдЬрд╣рд╛рдВ рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ.рдЬрд╕рди рд╕реНрдерд┐рдд рд╣реИ) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ, "рдУрдХреЗ" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ * .crx рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдпрд╣ рд╣рдорд╛рд░рд╛ рдкреИрдХреЗрдЬреНрдб рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╣реИред рдХреНрд░реЛрдо рдХреА рдорджрдж рд╕реЗ рдЗрд╕реЗ рдЦреЛрд▓рдХрд░, рд╣рдо рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВрдЧреЗред
рд╕реНрдерд╛рдкрд┐рдд рд▓реЗрдЦ рд╕реЗ рдкреИрдХреЗрдЬреНрдб рдЙрджрд╛рд╣рд░рдгрд╕реНрд░реЛрдд рдХреЗ рд╕рд╛рде рдкреБрд░рд╛рд▓реЗрдЦрд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдХреНрд░реЛрдо рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВред * рдПрдкреАрдЖрдИ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ, рдФрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рд╡рд┐рднрд┐рдиреНрди рд╕рд╛рдЗрдЯреЛрдВ рдФрд░ рд╕реНрдерд╛рдиреАрдп рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрддред рдпрджрд┐ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдореВрд▓ рдмрд╛рддреЗрдВ рдореЗрдВ рдХреБрдЫ рдпрд╛рдж рдХрд┐рдпрд╛ рд╣реИ рдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЪрдХреНрд░ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЦреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдЭрд╛рд╡ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдЙрдиреНрд╣реЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗрдВред
рдлрд┐рд░ рдорд┐рд▓реЗрдВрдЧреЗ!