рдмреАрдПрдХреНрд╕рдПрдл - рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рдврд╛рдВрдЪрд╛

рдЫрд╡рд┐



рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореБрдЭреЗ рдЕрдкрдиреЗ рд▓рд┐рдП рдУрдкреЗрд░рд╛ рдХрд╛ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рдкреВрд░рд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рдХрд░рддрд╛ред рдореИрдВ рдХреЛрдб рдЦреЛрд▓рддрд╛ рд╣реВрдВ, рдЖрддрдВрдХ! рдиреЗрдорд╕реНрдкреЗрд╕ (window.opera.extension.tabs, window.opera.contexts.toolbar, window.opera.extension.broadcastMessage) рдХреА рдЕрдЬреАрдм рд╢реНрд░реГрдВрдЦрд▓рд╛рдУрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдЬреЛ рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдХреНрдпрд╛ рдкрд┐рдШрд▓ рд░рд╣реЗ рд╣реИрдВ (рдореБрдЭреЗ рдПрдХ рдЖрд╕рд╛рди рддрд░реАрдХреЗ рдХреА рдЙрдореНрдореАрдж рдирд╣реАрдВ рдереА)ред рдореБрдЭреЗ рдЖрдЧреЗ рдХреЗ рдЕрдзреНрдпрдпрди рдХреЗ рд▓рд┐рдП dev.opera.com рдЦреЛрд▓рдирд╛ рдкрдбрд╝рд╛ред рдореИрдВрдиреЗ рдЕрднреА рднреА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдПрдХ рдлреНрд░реЗрдорд╡рд░реНрдХ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдУрдкреЗрд░рд╛ рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИред





рдЙрд╕ рдХреЛрдб (index.html) рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ Bexf рдХреЗ рд╕рд╛рдордиреЗ рд▓рд┐рдЦрдирд╛ рд╣реИ:

window.addEventListener('load', function () { //   var button = opera.contexts.toolbar.createItem({ disabled: false, title: "Bexf Button Example", icon: "icon.png", popup: { href: "popup_1.html" }, badge: {} }); //    button.popup.href = "popup.html"; button.popup.width = 400; button.popup.height = 150; //    button.title = 'Bexf Button Example\nTitle Updated via attr' + widget.preferences.getItem('some_option'); //   "" button.addEventListener('click', function () { //   var tab = opera.extension.tabs.create({url: 'https://www.google.com/', focused: true}); //     button.badge.textContent = ~~(Math.random() * 10); //    // tab.close(); }, false); //   "   " button.addEventListener('remove', function () { //    opera.extension.tabs.create({url: 'http://www.ya.ru/', focused: true}); }, false); //    opera.contexts.toolbar.addItem(button); window.setTimeout(function () { //  10      opera.contexts.toolbar.removeItem(button); }, 10000); }, false);
      
      





рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЕрдЬреАрдм рдирд╛рдорд╕реНрдерд╛рди, рдЧреБрдгреЛрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ: рдФрд░ рджреНрд╡рд┐рднрд╛рдЬрд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг: window.opera.extension.broadcastMessage рдпрд╛ window.postMessage (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рдЪ рд╣реИ)

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдмреЛрддрд▓ рдХреЗ рдмрд┐рдирд╛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдмреЗрдХреНрд╕рдлрд╝ рдмрдЪрд╛рд╡ рдореЗрдВ рдЖрддрд╛ рд╣реИред



Bexf рдХреЗ рдмрд╛рдж рд╕рдорд╛рди рдХреЛрдб (index.html) рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

 $.ready(function () { //   var button = $.createButton({ disabled: false, title: "Bexf Button Example", icon: "icon.png", popup: { href: "popup_1.html" } }) //    .attr({ href: "popup.html", width: 400, height: 150 }) //    .attr('title', 'Bexf Button Example\nTitle Updated via attr' + $.opt('some_option')) //   "" .click(function () { //   var tab = $.createTab({url: 'https://www.google.com/', focused: true}); //     button.text(~~(Math.random() * 10)); //    // tab.close(); }) //   "   " .remove(function () { //    $.createTab({url: 'http://www.ya.ru/', focused: true}); }) //    .addToPanel(); window.setTimeout(function () { //  10      button.removeFromPanel(); }, 10000); });
      
      



рдХрд╛рдлреА рдЕрд▓рдЧ рдорд╛рдорд▓рд╛ рд╣реИ, рд╣реИ рдирд╛?



рд╣рдо рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдХреЗ рдПрдХ рдЭреБрдВрдб рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдорд╛рдирд╡-рдкрдардиреАрдп рд░реВрдк рдореЗрдВ рд╕рдм рдХреБрдЫ рд▓рд╛рддреЗ рд╣реИрдВ рдЬреЛ рд╕рднреА jQuery рдбреЗрд╡рд▓рдкрд░реНрд╕ (рдЪреЗрди, рд╡рд┐рдзрд┐ рдХреЗ рдирд╛рдо, рдШрдЯрдирд╛рдУрдВ рдФрд░ рд╕рд╣рд╛рдпрдХреЛрдВ, рд╕реЗрдЯрд░ рдЧреЗрдЯрд░реНрд╕) рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИред рд╣рдореЗрдВ рд╕рд░рд▓ рдФрд░ рд╕реНрдкрд╖реНрдЯ рддрд░реАрдХреЗ рдФрд░ рдХрдХреНрд╖рд╛рдПрдВ рдорд┐рд▓рддреА рд╣реИрдВ: рдФрд░ рд╣рдо рджреЛ-рд╡реИрд░рд┐рдПрдВрдЯ рдЕрдкреНрд░реЛрдЪ рдмреНрд░реЙрдбрдХрд╛рд╕реНрдЯрдореИрд╕реЗрдЬ / рдкреЛрд╕реНрдЯрдореИрд╕реЗрдЬ рдХреЛ рдмрд╛рд╣рд░ рдХрд░ рджреЗрддреЗ рд╣реИрдВ, рдЕрдм рдЗрд╕реЗ $ .postMessage рдореЗрдердб рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ Bexf (рдкреЙрдкрдЕрдк рдпрд╛ рдЗрдВрдбреЗрдХреНрд╕) рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред



рдлрд╛рдЗрд▓реЗрдВ рдФрд░ рд▓рд┐рдВрдХ



рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ Google code.google.com/p/browser-extensions-framework рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ

рдЯрд┐рдкреНрдкрдгреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдлреНрд░реЗрдорд╡рд░реНрдХ (16.2 Kb) рдмреНрд░рд╛рдЙрдЬрд╝рд░- рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝реЗрд╢рди- framework.googlecode.com/files/Bexf-1.0.js

рдХрдо рд╕реЗ рдХрдо рдХреЛрдб (4.9 Kb) рдмреНрд░рд╛рдЙрдЬрд░- рдХрд╕реНрдЯрдорд░реНрд╕-framework.googlecode.com/files/Bexf-1.0.n.s



Bexf рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрджрд╛рд╣рд░рдг (рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдкреНрд░рдорд╛рдг): рдмреНрд░рд╛рдЙрдЬрд╝рд░- рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝реЗрд╢рди-framework.googlecode.com/files/bexf-example.oex

рддреБрд░рдВрдд рдореИрдВ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рдирд┐рд╣рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛: рдпрд╣ рдкреИрдирд▓ рдкрд░ рдПрдХ рдмрдЯрди рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЯрд╛рдЗрдорд░ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдЯрди рдмреИрдЬ рдХрд╛ рдореВрд▓реНрдп рдмрджрд▓рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рд╣реА рдорд╛рди 0 рдкрд░ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ рдпрд╣ рдмрдЯрди рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИ, 5 рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж google.com рд╕реЗ рдЯреИрдм рдЦреЛрд▓рддрд╛ рд╣реИ, рдЗрд╕ рдЯреИрдм рдХреЛ рдмрдВрдж рдХрд░рддрд╛ рд╣реИ рдФрд░ ya.ru рд╕реЗ рдПрдХ рдирдпрд╛ рдЦреЛрд▓рддрд╛ рд╣реИ



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



All Articles