Kako se izogniti uporabi Flasha pri demo CD-jih

August 29th, 2007 by Krof Drakula Leave a reply »

Ker trenutno pomagam zbirati in urejati gradivo za Labirint trenutkov in ga lično zapakirati v dinamično obliko, sem se odločil narediti nekaj dokaj neortodoksnega – narediti “Flash” predstavitev brez Flasha.

Kako, porečete? No, ideja je taka – ker zelo nerad programiram in delam v Flashu, se ga rad izognem, ko je le-to možno. In ker sem zelo domač v Javascriptu (ki je neke vrste ActionScript, natančneje “sibling” jezik v grupi, imenovani ECMAScript) in XHTML-ju kot prezentacijskem sloju, se mi je posvetilo – zakaj pa ne bi zadeve naredil kar v XHTML-ju? Glede na to, da so dandanes knjižnice z efekti res dobre (jQuery in maljon vtičnikov za le-tega) in računalniki dovolj dobri za predvajanje JS animacij, zakaj ne bi tega res naredil kot offline XHTML?

Vse lepo in prav, dokler se ne udariš ob eno prepreko – nešteta množica različnih brskalnikov, ki se nahajajo na računalnikih končnih uporabnikov (CD je namenjen distribuciji medijem in sponzorjem), od katerih je najbolj problematičen IE – 5.5, 6.0 in 7.0. Trije brskalniki, ki se med seboj po sposobnostih in funkcionalnosti razlikujejo huje kot različni brskalniki drugih ponudnikov med seboj. Nočna mora – še posebej, kar se tiče podpore JS knjižnic in prikaza strani, pa četudi gre za še najbolj preproste CSS vmesnike.

…in potem, ključni trenutek – kaj pa če bi prisilil uporabnika, da uporabi Firefox? Lame rešitev bi sicer bila ikona na dnu strani (mogoče še celo splash screen pred dejansko stranjo), kjer bi propagiral “Best viewed in Firefox,” ampak vsak spletni oblikovalec in programer ve, da je to formalni no-no. Tega se ne počne že od davnega leta 1997. Seveda bi lahko priložil inštalacijsko kopijo Firefoxa na CD-ju, ampak kaj, če bi s tem povozil kakšne nastavitve in novejše različice brskalnika, ki je že na sistemu (recimo Firefox 1.5-)? Najti je bilo treba boljšo, izolirano in samozadostno rešitev. Rezultat? Portable Firefox!

Seveda pa sama predstavitev zna zavajati ljudi, ker, seveda, gre še vedno za brskalnik v vsej svoji veličini. Še vedno lahko dodajaš zaznamke, vtičnike, uporabljaš multi-tab vmesnik, itd. Pa tudi vsi menuji so še vedno vidni, kar seveda nima mesta v namenskem brskalniku, ki služi le predstavitvi.

Slednje pa lahko, vsaj vizualno (do sem sem trenutno prišel), popravimo s pomočjo userChrome.css datoteke. Le-ta se nahaja v PortableFirefox/Data/profile/chrome, določa pa izgled XUL vmesnika. V mojem primeru sem hotel v prvem koraku izbrisati zgornjo vrstico z menuji, kar sem dosegel z naslednjo vsebino:

// lang css
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
#toolbar-menubar, #nav-bar {
  display: none !important;
}

To skrije naslovno vrstico in menu, bookmark toolbar pa sem skril že prej s pomočjo kontekstnega menuja z desnim klikom na sivi prostor med gumbi. Željeno predstavitveno stran pa lahko odprem s preprostim ukazom v smislu PortableFirefox.exe file:///c:/pot/do/projektnega/index.html in voilá! Gecko engine s Flash pluginom in polnim JavaScript VM-jem, z vsemi dobrotami XHTML in CSS.

Sicer je še veliko ostalo – treba je izključiti vse t.i. “acceleratorje” (bližnjice na tipkovnici), ki jih je trenutno še moč klicati (Ctrl+O, Ctrl+B, Ctrl+H in podobno), izklopiti je treba še kontekstni menu pri desnem kliku na “non-input” HTML elemente (torej, vse, razen input, textarea in podobno) in par ostalih bonbončkov.

Končen nabor datotek in komentirana navodila pa bom objavil, če koga zanima takšno početje. ;) Če ne drugega, lahko sedaj res oblikujete brskalnik natančno tako, kot želite.

Advertisement

3 comments

  1. tadej says:

    Spet sem s malo pozno spravil komentirati pod to objavo, pa kakorkoli že. Namesto tistega linka zgoraj za “userChrome.css” si najbrž mislil postati tale link: userChrome.css.

    P.S. – Obiskovalci tvojega bloga pa si lahko pomagajo z Google iskanjem za Firefox userChrome.css, kjer bodo našli tudi linke do veliko bolj obširnih “člankov” o tej zadevi na Mozilla Wiki oz. MDC Wiki.

    Tadej

  2. tadej says:

    Sorry pa še tole: zgoraj sem mislil “članke” na MozillaZine Knowledge Base, konkretno recimo na tegale. No in pa seveda, tu je še tale stran pod “Firefox Help” sekcijo.

    Drugače pa, sem hotel linkati tudi “userChrome.css” fajl, ki ga jaz osebno uporabljam s programom FF (in ki sem ga že zuploadal na svoj FTP server), pa sem se potem spomnil, da mi spam-filter najbrž ne bi dovolil postati še enega linka več. Tako naj samo povem, da ga jaz uporabljam npr. za ustaviti animacijo od t.i. “throbber-ja”, potem za to, da naredim FF-jev GUI “Windows Classic”, in pa v primeru enega od profilov, da spremenim širino “Search box-a”.

    Tadej

  3. Krof Drakula says:

    Sicer bi popravil linke, ampak si jih že ti postal, tako da se ne bom trudil s popravki.

    Lahko pa delim svoje izkušnje po tem, ko sem zadevo dejansko zapisal na CD in pognal. Zadeva deluje brezhibno (potrebuješ sicer še FirefoxPortable.ini datoteko, ki jo daš zraven istoimenskega .exe fajla, da teče s CD-ja), čeprav se nalaga relativno počasi (random access s CD-ja pač). S pravim JS frameworkom za animacije in uporabniški vmesnik je to zmaga. Moram pa priznati, da je tukaj Flash še vedno v prednosti, kar se tiče fancy animacij in podobnega, ampak kdo pri pravi pameti pa hoče kilometrske tekste urejati v Flashu, še posebej ob manjku masovnega stilističnega urejanja brez CSS?

    Kar pa se tiče izboljšav – pravkar je izšel jQuery UI, ki reši vse potrebe po čistem in urejenem uporabniškem vmesniku z vsemi naprednimi funkcijami desktop aplikacij (razen drag’n'drop na ostale zadeve, očitno).

    Z izjemo Silverlighta je, kar se mene tiče, Flash zame samo še igračka za ustvarjanje flash bannerjev. Za vse ostalo sta Silverlight in FirefoxPortable.

    Mogoče se bom spravil celo narediti namenski Gecko engine, ki bo nadomestil celoten špeh Firefoxa z namenskim HTML/JS projektorjem, ki bo opravljal isto funkcijo zgoraj opisanega programa.