Přejít k navigační liště

Zdroják » Webdesign » Začínáme s rozšířeními pro prohlížeč Opera

Začínáme s rozšířeními pro prohlížeč Opera

Články Webdesign

Opera Software uvolnila alfaverzi svého stejnojmenného prohlížeče s pořadovým číslem 11. Seznam novinek v této verzi není definitivní, ale už dnes se ví, že jednou z hlavních změn bude zabudování mechanismu pro tvorbu a využití rozšíření – známých „addonů“. Se základy jejich tvorby se seznámíme už dnes.

Prohlížeč Opera ve verzi 11, jehož alfaverze byla včera uvedena, přináší framework pro spouštění rozšíření (extensions), které přidávají k prohlížeči nové funkce. Framework pro tato rozšíření je postaven na existujících standardech, jako je standard W3C Widgets a použití JavaScriptu. Což znamená, že pokud dokážete napsat webovou stránku nebo widget, máte dostatečné znalosti k napsání rozšíření. Můžete rovněž použít technologie z rodiny HTML5, jako je cross-document messaging.

Vývojáři Opery připravili pro tvůrce rozšíření seznam referenční dokumentace a tutoriálů. Upozorňují, že jde stále o počáteční verzi, která se může později změnit, takže nic není jisté a nic není stabilní. Během dalších týdnů a měsíců se mohou věci podstatně změnit, od úprav API po nové funkce. Pokud máte nějaké dotazy, nebojte se je položit ve fóru vývojářů rozšíření pro Operu.

Rychlý úvod

Pokud chcete získat povšechnou představu o fungování rozšíření v Opeře, přečtěte si článek  Come and play with Opera extensions na webu Choose Opera. Chcete-li získat hlubší informace a pohrát si s ukázkami, ve zbytku článku se naučíte, co takové rozšíření obsahuje a jak jej vytvořit.

API

Ačkoli je API pro rozšíření Opery postavené na standardních technologiích, existuje řada specifických oblastí, které ve standardech nejsou a které návrh API rozšiřují. Tato API umožňují např. pracovat s prohlížečem samotným a řídit jeho funkce, jako jsou panely či okna. Vývojáři Opery se snažili vytvořit jednoduché a přímočaré API, aby je bylo snadné používat.

API pro rozšíření jsou v Opeře ve jmenném prostoru opera.extensions. Prostor opera.extensions je globální objekt, v němž je většina API modulů. Například pokud chcete inicializovat objekt tabs, odvoláte se na něj pomocí  opera.extensions.tabs.

Na úvod je dobré prostudovat API Documentation overview page, popřípadě vizuálního průvodce k dokumentaci.

Vývojáři připravili i několik tutoriálů, které vám usnadní začátky s rozšířeními pro Operu. Dozvíte se v nich důležité informace o uživatelském rozhraní, panelech, oknech a zasílání zpráv.

  • Opera extensions: buttons, badges and popups. V tomto článku jsou představeny objekty ToolbarContext, ToolbarUIItem, ToolbarUIItemProperties, Popup a Badge. Získáte rovněž informace o UI pro toolbary, včetně vytváření tooltipů, ikon atd.
  • Opera extensions: tabs. Tento článek představuje objekt tabs a vysvětluje, jak pracovat s panely.
  • Opera extensions: windows. Tento článek představuje objekt windows a vysvětluje, jak pracovat s okny.

Tutoriály

Pokud jste se seznámili se základní strukturou rozšíření a s některými API, je načase podívat se na některé praktičtější tutoríály. Postupem času budou přibývat, zatím jsou k dispozici tyto dva:

Známé problémy

  • Rozšíření nefungují na stránkách, kde není tag <script> ani na stránkách přenesených protokolem HTTPS (pokud to uživatel výslovně nepovolí na stránce opera:config).
  • Pro ladění použijte opera.postError(). Výpis se objeví v konzoli, kterou naleznete ve  View > Developer Tools > Error Console. Používejte tuto techniku namísto Dragonfly.

Co obsahuje rozšíření?

V této části se podíváme na to, co takové rozšíření musí obsahovat, a ukážeme si ve stručnosti některá API. Podrobnější informace naleznete v referenční dokumentaci API.

Soubory

Systém rozšíření v Opeře je založen na specifikaci W3C Widgets. Rozšíření může obsahovat  následující soubory:

  • /config.xml
  • /index.html
  • /background.js
  • /popup.html
  • /icons/example.png
  • /locales/cs-cz/index.html
  • /locales/cs-cz/background.js
  • /locales/cs-cz/popup.html

Pojďme se na ně podívat po jednom a ukázat si, co který obsahuje.

config.xml

Konfigurační soubor, který poskytuje potřebná metadata k rozšíření — toto je jedna ze dvou povinných částí, které musí obsahovat každé rozšíření (druhá je soubor index.html), ačkoli sama o sobě moc práce neudělá. Protože je systém rozšíření v Opeře založen na W3C Widgets, obsahuje soubor config.xml totéž co předepisuje tato specifikace — viz W3C Widgets spec configuration document. V tomto souboru může být spousta různých informací, a je doporučeno uvést alespoň tyto:

  • Jméno rozšíření
  • Jméno autora
  • Popis
  • Ikona: ta je použita ve správci rozšíření a na dalších místech.  Více v dalším textu.

Zde je ukázka takového souboru config.xml:

<?xml version="1.0" encoding="utf-8"?>
<widget xmlns="http://www.w3.org/ns/widgets">
  <name>My test extension</name>
  <description>API experiments and testing.</description>
  <author href="http://foo-bar.example.org/"
          email="foo-bar@example.org">Foo Bar Corp</author>
  <icon src="icons/example.png"/>
</widget> 

index.html

V terminologii rozšíření je to „úvodní soubor“. Úvodní soubor je nutnou součástí a stará se o procesy, které v rozšíření běží na pozadí (pokud chcete tento soubor pojmenovat jinak, uveďte to v elementu <content> v config.xml).

Tento soubor může obsahovat JavaScript k vytvoření prvků v uživatelském rozhraní prohlížeče, jako jsou např. tlačítka. Příklad:

<!doctype html>
<html>
  <head>
    <script>
      window.addEventListener("load", function(){
        var theButton;
        var UIItemProperties = {
          disabled: false,
          title: "101 - createItem w popup big",
          icon: "icon.png",
          popup: {
            href: "popup.html",
            width: 250,
            height: 500
          }
        }
        theButton = opera.contexts.toolbar.createItem( UIItemProperties );
        opera.contexts.toolbar.addItem( theButton );
      }, false);
    </script>
  </head>
  <body>
  </body>
</html> 

background.js

Do tohoto souboru ukládejte takzvané „background skripty“, které řídí celé pozadí funkce rozšíření. Můžete jich mít kolik chcete a nemusíte je pojmenovávat zrovna  background.js.

popup.html

Tento soubor (nebo soubory – opět jich může být víc v jednom rozšíření) obsahuje dokument, který se zobrazí ve vyskakovacím okně (oknech), vyvolaných nějakou akcí na pozadí. Vyskakovací okno ale může zobrazit i externí stránku, pokud zadáme patřičné URL.

icons/example.png

V rozšíření by měly být zahrnuty ikony (viz další text).

includes (vložené skripty)

Libovolné soubory s příponou JS, uvedené v tomto adresáři, budou vloženy do stránek, které navštěvujete. Tyto skripty mohou být cílené na konkrétní web, třeba youtube.com. Více o vkládání skriptů naleznete na UserJS documentation pages.

locales

Obsahem adresáře locales jsou soubory s lokalizací, pokud chcete své rozšíření nabídnout v různých jazykových verzích. V adresáři  locales vytvořte podadresáře pro každou jazykovou mutaci, pojmenované podle konvence pro jazyky a dialekty. Ve výše uvedeném příkladu máme adresář  cs-cz pro český překlad, ale můžeme nabídnout např. en-gb, pt-br, ru, no, jp a další. (Všimněte si malých písmen – pojmenovávejte mutace malými písmeny, jak to vyžaduje specifikace W3C Widgets Packaging, kvůli předcházení možným systémovým konfliktům). V každém adresáři můžete nabídnout alternativy pro index.html, vkládané skripty atd.

Uživatelské rozhraní rozšíření pro Operu je vytvořeno z UI elementů, které se vkládají do stránky pomocí vložených skriptů, z tlačítek v toolbaru, která jsou vytvořena pomocí UIItems API v background skriptu, a z vyskakovacích oken, které jsou popsány dál a které zobrazují přiložený HTML dokument, nebo vzdálený web.

Podrobnější pohled na architekturu a API

Architektura rozšíření pro Operu je založena na interakci následujících čtyř částí:

Vložené skripty <-> Procesy na pozadí <-> Tlačítka/nápisy <-> Popup

Tyto části komunikují pomocí cross-document messaging a zajišťují následující funkce:

Vložené skripty

Zde jsou skripty, co jsou vloženy do cílových stránek.

Procesy na pozadí

Procesy na pozadí drží celé rozšíření pohromadě. Jsou centrálním místem, přes které probíhá veškerá komunikace a kde se odehrává většina interakcí s API rozšíření. Procesy na pozadí vytváří a mění prvky uživatelského rozhraní pomocí následujících me­tod:

  • opera.contexts.toolbar.createItem( { ...properties... } )
  • opera.contexts.toolbar.addItem( uiItem )
  • opera.contexts.toolbar.removeItem( uiItem )

Pozn.: Zatím lze použít pouze toolbar, ale v budoucnu mohou přibýt další kontejnery.

Tlačítka a nápisy

Tato část obsahuje elementy uživatelského rozhraní, jako jsou tlačítka, informační nápisy nebo v budoucnu např. položky menu.

Tlačítka

Tlačítko můžete vytvořit voláním funkce opera.contexts.toolbar.createItem() a přidat ho do lišty nástrojů pomocí opera.contexts.toolbar.addItem(). Ukažme si příklad souboru index.html, v němž je vytvořeno tlačítko v toolbaru, které při stisknutí otevře okno:

<!doctype html>
<html>
  <head>
    <script>
      window.addEventListener("load", function(){
        var theButton; // the button variable
        var toolbar = opera.contexts.toolbar; //the Opera toolbar
        var props = { // options for the button
          disabled: false,
          title: "My first extension!",
          icon: "opera.ico",
          popup: {
            href: "http://www.google.com",
            width: 300,
            height: 200
          }
        }
        theButton = toolbar.createItem( props ); // create the button
        toolbar.addItem( theButton ); // add button to UI
      }, false);
    </script>
  </head>
  <body>
  </body>
</html> 

Tlačítko odstraníte funkcí opera.contexts.toolbar.removeItem(theButton);. Můžete rovněž obsloužit událost onclick přidáním onclick: function(){ /* ... */ } k tlačítku.

Ikony

Pokud vytváříte tlačítko, měli byste přiložit obrázek, který bude tlačítko představovat. Tlačítko je vykresleno s rozměry 22×22 pixelů, a pokud bude obrázek větší, bude změněn. Pokud chcete předejít nehezkým deformacím, používejte obrázky přesně těchto rozměrů.

Pokud budete své rozšíření nahrávat do galerie, budete požádáni navíc o ikonu 64×64. Tato ikona bude použita v online katalogu Opery a ve správci rozšíření. Titulek, popis a cesta k ikoně jsou uloženy v souboru  config.xml.

Vyskakovací okna

Vyskakovací okna mohou být definována prostě – pomocí přidání vlastnosti popup při vytváření tlačítka:

var props = { // options for the button
  disabled: false,
  title: "My first extension!",
  icon: "opera.ico",
  popup: {
    href: "http://www.google.com",
    width: 300,
    height: 200
  }
} 

Výše uvedený příklad vytvoří vyskakovací okno, v němž bude zobrazena úvodní stránka Google. Můžete rovněž definovat vlastní HTML stránku jako součást rozšíření, a ta bude ve vyskakovacím okně zobrazena:

popup: {
  href: "popup.html",
  width: 300,
  height: 300
} 

Nápisy

Nápisy (badges) jsou informace, které jsou zobrazeny přes existující tlačítko. Takový nápis přidáte jednoduše pomocí příslušné vlastnosti k tlačítku:

var props = { // options for the button
  disabled: false,
  title: "My first extension!",
  icon: "opera.ico",
  popup: {
    href: "popup.html",
    width: 300,
    height: 200
  },
  badge: {
    textContent: '123'
  }
} 

Můžete upravit barvu nápisu pomocí jednoduchých stylů:

backgroundColor: '#ffeedd',
color: '#404040', 

Konečně vlastní text nápisu můžete upravit nastavením vlastnosti  textContent:

theButton.badge.textContent = "45" 

Různé typy rozšíření

Existuje mnoho typů rozšíření, které můžete vytvořit, i když podpora pro některé zatím nemusí být k dispozici. V podstatě lze říct, že každé rozšíření se skládá z těchto částí:

Vložené skripty <-> Procesy na pozadí <-> Tlačítka/nápisy <-> Popup

Různé typy rozšíření pak vzniknou coby permutace těchto částí:

  1. Vložené skripty + index.html : To je prostý vložený skript, prázdný index.html a patřičný config.xml, zabalený jako rozšíření. Bude to fungovat, ale nevyužijete výhod API pro rozšíření
  2. Tlačítko + Popup: Můžete vytvořit rozšíření, které zobrazí tlačítko v nástrojové liště prohlížeče, a při kliknutí na toto tlačítko zobrazí stránku ze zadaného URL.
  3. Rozšíření jako bookmarklet: Můžete napsat rozšíření, které při kliknutí vyvolá bookmarklet pro aktivní panel, stejně jako by byl skript zapsaný pomocí javascript: URL v záložce.
  4. Analýza obsahu: Rozšíření může vložit do navštívené stránky skript, který zpracuje DOM a pošle výsledná data zpět procesu na pozadí, který s těmito výsledky naloží dle potřeby (např. zobrazí informaci coby nápis přes tlačítko apod.)
  5. Akce s obsahem: Můžete vytvořit rozšíření, které zobrazí tlačítko, jež při aktivaci pošle zprávu vloženému skriptu, který provede požadované operace a pošle zpět data. Například: vybereme adresu v textu stránky, klikneme na tlačítko a v popup okně se daná adresa ukáže na Google mapách.
  6. Automatické akce: Proces na pozadí může periodicky vykonávat nějakou činnost a aktualizovat informace – např. kontrolovat mail a zobrazovat počet nepřečtených zpráv.

Poznámka: Skripty na pozadí dokáží posílat XHR požadavky na libovolné domény, stejně jako widgety. Více informací o cross-domain XHR naleznete v článku Opera Widgets and Ajax connecting to multiple servers.

Hello, world!

V této části si ukážeme základní kroky při vytváření rozšíření pro prohlížeč Opera. Vytvoříme si tlačítko do toolbaru, které po stisknutí otevře vyskakovací dialog se známým nápisem „Hello world!“ K vytvoření nebudeme potřebovat nic jiného než Operu 11 a textový editor dle vlastního výběru.

Konfigurace rozšíření

Nejprve vytvoříme konfigurační soubor, v němž budou uložena metadata s popisem rozšíření. Zde jsou informace jako jméno rozšíření, autor nebo použitá ikona. Opera používá standardní formát pro widgety, definovaný konsorciem W3C, který vám bude povědomý, pokud jste někdy vytvářeli pro Operu widgety.

Pojďme si tedy vytvořit kostru takového souboru:

<?xml version="1.0" encoding="utf-8"?>
<widget xmlns="http://www.w3.org/ns/widgets">
    <name>Hello extensions!</name>
    <description>A simple hello world example</description>
    <author href="yourURL" email="yourEMail">Enter your name here</author>
    <icon src="hello.png"/>
</widget> 

Uložte tento soubor s názvem config.xml do pracovního adresáře.

Vytváření ikony pro rozšíření

Povšimněte si elementu icon v konfiguračním souboru. Specifikuje ikonu o doporučených rozměrech 64×64 pixelů, která bude představovat toto rozšíření ve Správci rozšíření a na stránce Opera extensions.

Můžete si vytvořit vlastní, nebo použijte připravený obrázek hello.png – stáhněte jej a nahrajte do pracovního adresáře.

Přidání tlačítka do nástrojové lišty

Když máme rozšíření nakonfigurované, můžeme začít vytvářet kód. Vytvoříme si tlačítko, které bude vloženo do nástrojové lišty, a to pomocí tohoto kódu:

<!doctype html>
<html lang="en">
  <head>
    <script>
       window.addEventListener("load", function(){
        var theButton;
        var ToolbarUIItemProperties = {
          title: "Hello World",
          icon: "hello-button.png",
          popup: {
            href: "popup.html",
            width: 110,
            height: 30
          }
        }
        theButton = opera.contexts.toolbar.createItem(ToolbarUIItemProperties);
        opera.contexts.toolbar.addItem(theButton);
      }, false);
    </script>
  </head>
  <body>
  </body>
</html> 

Uložte si kód do souboru, který pojmenujete index.html.

Všechna rozšíření pro Operu musí obsahovat soubor index.html. Ten obsahuje pouze holé HTML se skriptem, který vytváří elementy uživatelského rozhraní. Vlastní tělo HTML dokumentu je ignorováno.

Výše uvedený skript vytvoří položku v nástrojové liště a nastaví některé vlastnosti. Bude použita uvedená ikona (18×18px) a k ní přiřazeno vyskakovací okno s danými rozměry a uvedeným obsahem.

Opět si můžete stáhnout ikonu hello-button.png a uložit do pracovního adresáře.

Vyskakovací dialog

Vytvořili jsme tlačítko, udali rozměry vyskakovacího okna, a nyní potřebujeme nějaký obsah. Obsahem bude prostý HTML dokument, který se zobrazí v okně. Můžeme v něm použít HTML, CSS, JavaScript nebo jakoukoli jinou technologii, kterou normálně používáte na webových stránkách. Toto je příklad „hello world“, takže stránka bude velmi jednoduchá:

<!doctype html>
<html lang="en">
  <head>
    <title>Hello World!</title>
    <style>
        h1 {
            font: 14px helvetica, arial, sans-serif;
            text-align: center;
         }
    </style>
  </head>
  <body>
    <h1>Hello World!</h1>
  </body>
</html> 

Uložte ji jako popup.html k ostatním souborům.

Zabalení a instalace

Naše rozšíření je téměř hotové. Zbývá už jen soubory vzít a sbalit – použijte svůj oblíbený archivátor, který dokáže vytvořit soubor typu ZIP. Nezapomeňte změnit příponu na .oex  – a je hotovo.

Výsledné rozšíření si můžete stáhnout: HelloExtension.

Nyní stačí přetáhnout rozšíření na okno prohlížeče, a objeví se dotaz, zda jej chceme nainstalovat. Uvidíte i ikonu, kterou jsme si připravili. Přepněte panel a zkuste kliknout na novou ikonku v toolbaru.

Experimentujte s nastavením tlačítka, s obsahem dialogu a s dalšími parametry.

Tento článek je volným překladem článků Getting started with Opera extensions (autor Andreas Bovens), What’s in an Opera extension? (autor Chris Mills) a Saying hello world to Opera extensions! (autor David Storey), vydaných na Dev.Opera. Překlad vychází s laskavým svolením Opera Software.

Komentáře

Subscribe
Upozornit na
guest
17 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
Harvie.CZ

dost mi to připomíná rozšíření v chromiu… myslím, že bysme se mohli dočkat pluginů, které budou fungovat ve „všech“ významných prohlížečích…

cvm

Ano je to mozne. Mozilla JetPack, Chrome/Safari extensions a Opera extensions su podobne technologie. Vsetkych spaja na zaciatku userJS a rozdeluje implementacia do konkretneho prehliadaca.

PiViK

Nemate nahodou nekdo vyreseno, jak v Opere prehravat videa napr. z youtube pomoci nejakeho normalniho prehravace, napr. mplayer? Pro FF je takovychto rozsireni celkem dost, ale kdyz sem je zkousel nekdy mozna pred rokem zprovoznit jako userscript v Opere, tak sem mel smulu. Kdyby mel nekdo funkcni reseni, byl bych mu zavazan. Opravdu me nebavi narocnost flashe a take fakt, ze fullscreen mi funguje jen kdyz bezim na jednom monitoru. Ve chvili kdy k ntb pripojim monitor externi, muzu na funkcni fullscreen zapomenout…

lake

WebM
http://labs.opera.com/news/2010/05/19/
neresi vse, ale pouzivam to …

Michal Augustýn

Tučňáci a podobná havěť mě teď asi sežerou…ale má smysl zabývat se prohlížečem, který má penetraci takovou, jakou má, tj. < 5% ?

http://en.wikipedia.org/wiki/Usage_share_of_web_browsers

Použití si dovedu představit snad jedině na intranetu, kde bude Opera příkazem. Nebo mi uniká nějaký rozumný use-case? Rád se nechám poučit…

PiViK

Jsou lide, kterym tento prohlizec velmi vyhovuje. Osobne pouzivam Operu ze uz ani nepamatuju a doted na ni nedam dopustit. Jako hlavni vyhodu napr. oproti FF vidim to, ze stahnu, nainstaluju a pouzivam. Tzn. vsechny veci, co od prohlizece ocekavam, mam rovnou od instalace a nemusim nikde hledat nejake pluginy a hodiny se s tim nastavovat. V defaultu ma pekneho download managera, ktery v nouzi zvladne i torrenty, umi blokovat obsah na strankach jen tim, ze das prave tlacitko -> block content -> vyklikas reklamy -> Done. Poprve pouzijes gesto mysi, prohlizec se te zepta zda to myslis vazne a od te chvile funguje gestikulace, bez ktere si uz prohlizec neumim predstavit. Vyvojarske nastroje DragonFly (neco jako FireBug) take hned od instalace. Prijeme udelany zoom a uzivatelske zobrazeni stranek…
Ted je to asi nazor subjektivni, ale z Opery mam odjakziva pocit velmi svizneho prohlizece. Bohuzel v posledni dobe dost zaostava za konkurenci co se tyce vyuziti pameti, prijde mi, ze zacala strasne zrat. Kazdopadne pri pohledu na statistiky si vzdy pripadam divne, protoze v mem okoli pouziva Operu skoro kazdy, tak jakychpak <5% :-D.

Michal Augustýn

Vůbec jsem nenarážel na kvalitu Opery (sám ji používám), ale jen na její penetraci.
A nemyslel jsem to ani nijak zle – jen by mě opravdu zajímal use-case, ve kterém by mělo smysl se něčím takovým zabývat.
Většina vývojářů neví co dřív, tak mi přijde zbytečné plýtvat časem na něco, co stejně využije jen zlomek lidí – i když z pohledu vývojáře velká část jeho okolí :)

Jakub D.

Pak bych se mohl ja zeptat, zda „má smysl zabývat se operačním systémem, který má penetraci takovou, jakou má, tj. < 1% ?“ Zrejme ano, jinak bychom nediskutovali na tomto serveru. Mezi kvalitou a kvantitou je mnohdy neprima umera. V hudbe, filmu, v politice i technice.

Michal Augustýn

„má smysl zabývat se operačním systémem, který má penetraci takovou, jakou má, tj. < 1% ?“

To je ale něco úplně jiného – v oblasti OS je docela striktní rozdělení mezi desktopem a serverem. V oblasti browserů je sice možné taky mluvit o striktním rozdělení trhu – počítače vs. mobilní zařízení. Článek ale pojednává jen o první variantě.

Vzdáleně by šel vývoj rozšíření pro Operu přirovnat k vývoji desktopové aplikace pro nějaký velmi minoritní OS. Smysl to mít může – já se jen ptám, zda skutečně má, zda to někdo reálně využívá.

Mezi kvalitou a kvantitou je mnohdy neprima umera. V hudbe, filmu, v politice i technice.

Tak dobře, tak ještě jednou, asi tady mají všichni zatemněnou mysl – nemám nic proti Opeře, sám ji používám a vůbec jsem se nikde nezmiňoval o kvalitě.

Jakub D.

V poradku, svuj prispevek a zvlaste vetu o kvalite a kvantite jsem myslel obecne. Sam pouzivam Operu i Firefox. Firefox je tolik pouzivany IMHO prave diky svemu systemu rozsireni. Opera spoustu takovych funkci sice ma primo v sobe, nicmene jeji autori se logicky snazi priblizit k Firefoxu. V tutorialu by to chtelo provest srovnani, co lze jak udelat v obou techto prohlizecich.

ahl

5% se sice zdá málo, ale když si to převedeš na absolutní čísla, tak je to naopak obrovské množství. Spíš bych řekl, že lidi v IT jsou zvyklí na monopoly a připadají jim přirozené. Např. kdybys to aplikoval třeba na auta, tak Škodovka se může rovnou zavřít, protože ti ubožáci ovládají jenom necelá 2% trhu.

Michal Augustýn

To přirovnání docela pokulhává. 2 % škodovky je v absolutních číslech hodně, takže vyvíjet příslušenství pro ní má cenu, protože majitelé škodovek si to příslušenství najdou (a majitelé ostatních aut nám můžou být buřt).
Ale na webu je to jiné…chceme dělat web jen pro Operisty (a na ostatní dlabat) ? Pokud ano a má takový web smysl, tak je to ten use-case, na který se ptám ;-)
Jistě, můžeme dělat web i pro Operisty…ale pak je tu ten problém s věčným nedostatkem času a tedy tím, jaký to bude mít reálný přínos…
Třeba u obrovských webů typu bbc.co.uk to smysl má…

Zahor

Ta tvoja dilema je celkom zbytocna. Ak chces poznat odpoved, tak ti ju tu v diskusii nikto neda – opytaj sa priamo majitelov a vyvojarov Opery. Oni su ti, ktori investuju svoj kapital do tohto programu. Asi vsadzaju na to, ze trh taketo nieco ocakava a moze vyuzit. Ponuka vytvara dopyt, toto plati vzdy.

A to porovnanie so Skodovkou vobec nepokulhava. Je to presne to iste. Vzdy rozhodne trh, ci nejaky produkt prezije dlho alebo kratko.
Kedze sa Opera vybrala touto cestou, znamena to asi, ze sa snazia vystihnut trend do buducnosti. Je vzdy lepsi nejaky pokus ako ziadny, ze.

Michal Augustýn

Ta tvoja dilema je celkom zbytocna.

Já teda nemám neomezeně času, takže dilema, zda mi stojí za to se něčemu věnovat, skutečně řeším.

A to porovnanie so Skodovkou vobec nepokulhava. Je to presne to iste. Vzdy rozhodne trh, ci nejaky produkt prezije dlho alebo kratko.

Wtf? To je jako reakce na co? Kdo se tady baví o přežití Opery?

Kedze sa Opera vybrala touto cestou, znamena to asi, ze sa snazia vystihnut trend do buducnosti. Je vzdy lepsi nejaky pokus ako ziadny, ze.
A kdo tvrdí opak?

pepak

Dopředu jsem to očekával a testy to potvrdily – rozšíření jsou v Opeře postavené na přesně stejném špatném bezpečnostním návrhu jako tlačítka, bookmarklety, userscripty atd. – rozšiřující skript se stává součástí stránky a je vykonáván v jejím kontextu. To mimo jiné znamená, že pokud na stránce zakážu vykonávání skriptů, tak na ní také zakážu rozšíření. A to je zásadní problém – z bezpečnostního hlediska je naprosto nezbytné, aby uživatelská rozšíření prohlížeče běžela nezávisle na konkrétní otevřené stránce. Beru, že tohle pálí naprosté minimum uživatelů a že většině to bude jedno, protože mají javascript povolený všude, ale to nic nemění na tom, že to je špatné řešení. Asi jako kdyby Opera vyžadovala administrátorská práva, protože „99%* uživatelů pouští Operu pod administrátorským účtem“. (* to číslo jem si vymyslel)

v6ak

To je celkem zvláštní, když má přístup k tabům apod.

Michal Stankoviansky

Článok uvádza cca že „tlačidlo bude mať 22 x 22 pixelov a ak preň vytvoríte ikonu väčšiu, bude zmenšená“. Podľa toho čo sa píše na dev.opera.com by ikony pre tlačidlá mali mať presne 18 x 18 pixelov.

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.