Help for English

Rychlé hledání ve slovníku

 

Chtěl jsem toto řešení postnout do komentářů článku o té nové vychytávce hledání slovíček přímo v článku, ale neprošlo to, tak to dávám sem.

Tak teda klobouk dolu, o takovéhle vychytávce se mi ani nesnilo!

Co se týče toho problému s Operou, sám jsem podobný problém nedávno řešil na svých stránkách a napadlo mě toto řešení. Neni to sice moc elegantní, ale funguje to a generovat to je hračka a zrovna já bych byl moc rád jako Operák :)

Pro všecny prohlížeče kromě opery by se stránka generovala tak jak má a pro Operu by se generovala tak, že každé anglické slovo by bylo uzavřené do tagu <a> bez adresy odkazu. Pokud je totiž text v tom tagu, opera ho chybně neoznačuje po dvojkliku.

Nezkoumal jsem přesně princip toho obslužného javascriptu, ale myslim, že by to takhle mělo po menší úpravě scriptu fungovat.

Pro zkoušku funčnosti si můžete vyzkoušet třeba tehle kód (ty události by na stránkách samozřejmě nebyly):

<a ondblclick=„a­lert(‚We‘)“>We <a ondblclick=„a­lert(‚have‘)“>ha­ve

Je pravda, že velikost stránky pro tu operu nepatrně vroste, ale opravdu jenom nepatrně a takový kód je i zcela validní!

Dobrý den,

omlouvám se, že jsem takto přesunul příspěvek, ale myslím, že bude lepší, když se k němu budeme moci vyjádřit v samostaném vláknu fóra.

Nyní k problému – Opera je určitě úžasný prohlížeč a nechci jeho uživatele takto diskriminovat, určitě se v budoucnu pokusím najít řešení, které bude funkční na všech prohlížečích – tedy včetně Opery. Problém je jak?

Navrhované řešení jsem zvažoval v samém začátku vývoje, ale nakonec jsem ho nezvolil, protože:

:idea: zdrojový kód vytváří výrazně větší – rozdíl mezi We have… a <a ondblclick=„a­lert(‚We‘)“>We <a ondblclick=„a­lert(‚have‘)“>ha­ve je dle mého názoru značný – a stránku by to nafouklo do velkých rozměrů
:idea: současná stavba stránek neumožňuje nějaké univerzálně vkládat tuto funkci všude – nejlepší na současné řešení je že funguje opravdu všude, kde je něco psané, to by tímto způsobem imho nešlo

Proto by to tímto směrem dle mého názoru nešlo, ale to neznamená, že jiné řešení neexistuje – Opera je výborný prohlížeč, který de výtečně nakonfigurovat, třeba se v nastavení někde skrývá možnost, jak tuto funkci spustit…

Pane Hudík, ale však já psal, že ty události jsou tam jenom pro ověření funkčnosti, samotný kód na stránkách by byl pouze takový – <a>We <a>have. Při zapnuté kompresy by byl rozdíl opravdu minimální a hlavně by takto větší kód měli opravdu jenom operáci, když by se to generovalo jenom pro ně pomocí identifikace prohlížeče na straně serveru.

Taky mě napadá, že by tam ty tagy šli možná doplnit až v klientovi pomocí javascriptu, ale to jenom střílim od boku, v javascpriptu se nevyznám skoro vůbec.

Nebo je taky možnost, že by stačilo ten celý text dát pouze do jednoho <a> a třeba by to fungovalo taky.

Edit:
další docela dobrá a jednoduchá možnost co by také šla, je nevyvolávat v Opeře slovník pomocí dvojkliku, ale pomocí najetí kurzoru na slovo a stisknutí nějaké klávesy (událost onKeyPress).

Omlouvám se, to že by ten způsob mohl být jen na ověření funkčnosti jsem přehlíd… samozřejmě takto by nárust velikosti byl již menší.

Domnívám se, že není správné celý text vkládat do <a>… tento tag má pro prohlížeče zásadní důležitost a určitě by to zasáhlo do spousty věcí, jak náš web zobrazují prohlížeče.

Právě teď se snažím najít jinou akci na kterou by se nápověda spustila. Za zásadní problém, ale považuji, že při dvojkliku se text sám označí a já si pomocí JScriptu vyzvednu označený text, ale při jiné akci nevím, jak bych mohl zjistit, které slovo se skrývá pod kurzorem.

Opera má opravdu velkou řádku funkcí a možností jak ji nakonfigurovat. Uričtě nejsem první, kdo se snažil řešit problém s dvojklikem, takže předpokládám, že se někde podobné řešení najde, ale to se mi zatím nepovedlo…

A s tím onkeypressem by to nějak nešlo? Zkuste schválně ukázku na http://www.jakpsatweb.cz/…eypress.html. Zdá se to být docela fajn, stačí najet na příslušný prvek a zmáčknout libovolnou klávesu a provede se příslučná akce. Akorát ten tabulátor jak tam píšou neni zrovna vhodný, protože má v prohlížeči vlastní funkci, ale třeba s shiftem je to již docela v pohodě. Jestli je s tím možné zjistit jaký text je pod kurzorem pomocí externího scriptu ovšem nevím.

 

Příspěvky mohou přidávat pouze přihlášení uživatelé. Pokud máte účet můžete se přihlásit nebo se můžete přihlásit účtem na Facebooku.

Příspěvky v diskusi jsou majetkem jejich autorů. Provozovatel webových stránek Help For English za ně nenese zodpovědnost.