abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 19:00 | Zajímavý projekt

    Na crowdsourcingové platformě Crowd Supply byla spuštěna kampaň na podporu open source biometrického monitoru ve tvaru hodinek HealthyPi Move. Cena je 249 dolarů a plánovaný termín dodání listopad letošního roku.

    Ladislav Hagara | Komentářů: 1
    24.5. 22:22 | Upozornění Ladislav Hagara | Komentářů: 9
    24.5. 17:44 | Nová verze

    Firma Murena představila /e/OS verze 2.0. Jde o  alternativní sestavení Androidu bez aplikací Google. Mezi novinkami je podrobnější nastavení ochrany soukromí před sledováním aplikacemi. Murena prodává několik smartphonů s předinstalovaným /e/OS (Fairphone, repasovaný Google Pixel 5).

    Fluttershy, yay! | Komentářů: 0
    24.5. 14:33 | Zajímavý software

    Do 30. května lze v rámci akce Warhammer Skulls 2024 získat na Steamu zdarma hru Warhammer 40,000: Gladius - Relics of War.

    Ladislav Hagara | Komentářů: 1
    24.5. 13:33 | Nová verze

    HelenOS (Wikipedie), tj. svobodný operační systém českého původu založený na architektuře mikrojádra, byl vydán ve verzi 0.14.1. Přehled novinek v poznámkách k vydání. Vypíchnou lze nabídku Start. Videopředstavení na YouTube.

    Ladislav Hagara | Komentářů: 2
    23.5. 23:22 | Zajímavý software

    BreadboardOS je firmware pro Raspberry Pi Pico (RP2040) umožňující s tímto MCU komunikovat pomocí řádkového rozhraní (CLI). Využívá FreeRTOS a Microshell.

    Ladislav Hagara | Komentářů: 0
    23.5. 16:55 | Nová verze

    Vývojáři KDE oznámili vydání balíku aplikací KDE Gear 24.05. Přehled novinek i s náhledy a videi v oficiálním oznámení. Do balíku se dostalo 5 nových aplikací: Audex, Accessibility Inspector, Francis, Kalm a Skladnik.

    Ladislav Hagara | Komentářů: 10
    23.5. 12:55 | Nová verze

    Byla vydána (𝕏) nová verze 18.0.0 open source webového aplikačního frameworku Angular (Wikipedie). Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    22.5. 23:44 | Pozvánky

    V neděli 26. května lze navštívit Maker Faire Rychnov nad Kněžnou, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.

    Ladislav Hagara | Komentářů: 0
    22.5. 16:33 | Nová verze

    Byla vydána nová stabilní verze 3.20.0, tj. první z nové řady 3.20, minimalistické linuxové distribuce zaměřené na bezpečnost Alpine Linux (Wikipedie) postavené na standardní knihovně jazyka C musl libc a BusyBoxu. Z novinek lze vypíchnou počáteční podporu 64bitové architektury RISC-V.

    Ladislav Hagara | Komentářů: 0
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (82%)
     (4%)
     (7%)
     (7%)
    Celkem 527 hlasů
     Komentářů: 16, poslední 14.5. 11:05
    Rozcestník

    HTML /XML - libovolny zapis dat, ale za jakou cenu

    10.8.2007 09:48 | Přečteno: 1100× | Programování (všeobecně) | poslední úprava: 10.8.2007 12:44

    Komunikujeme s kolegou ve firme a dostali sme se do diskuze, zda zneuzit HTML tag a pomoct si non-html-dtd-atributem.

    Zde je konkretni zapis:

    
          <select id="mySel">
            <option value="1" kod="cz">cestina</option>
            <option value="2" kod="sk">slovenstina</option>
            <option value="3" kod="en">anglictina</option>
          </select>
    
    
          mySel = document.getElementById('mySel'); 
          kod = mySel.options[mySel.selectedIndex].kod;
       
    Rozumej mySel je odkaz na html.selectbox a kod je prave vybrany "option", kt. ma mimo jine definovany extra atribut kod, kt. v sobe nese dalsi info potrebnou pro dalsi logiku jsfce, kt. muzeme napr. definovat polozku pro preklady....

    Jeste musim upozornit, ze value je jiz dale pouzita, takze jedna se o to, ze je nutne do "option" proste narvat jeste dalsi nosnou info pro onchange.js.fci.



    Updated 10.08.2007 Tak toto je tedy navrh reseni na zaklade prispevku - Filip Jirsák
       function whoAreYouBrowser(){return browserName;}
              
       function getOptData(){//
         var sel  = document.getElementById("mySel");
         var optVal = sel.options[sel.selectedIndex].value;
         var optAtr;
         switch(whoAreYouBrowser()){
            case "IE" : optAtr = sel.options[sel.selectedIndex].getAttribute("mysn:kod");
            case "noIE" : optAtr =  sel.options[sel.selectedIndex].getAttributeNS(myns,kod);
            default: alert("machale, zase ti to spadlo....");
         }
         return [optVal,optAtr];
       }
    

    Napadlo me jeste jedno reseni:

      function getOptData2(){
         var sel  = document.getElementById("mySel");
         var optVal = sel.options[sel.selectedIndex].value;
         var strArr = optVal.toString().split(",");
         return[strArr[0],strArr[1]]; 
      }
    
      <select id="mySel" onchange="getOptData2();">
        <option value="1,cz">cestina</option>
        <option value="2,sk">slovenstina</option>
        <option value="3,en">anglictina</option>
      </select>
    


    Zde je diskuze via messengera
    pavel:
    mySel = document.getElementById('mySel'); kod = mySel.options[mySel.selectedIndex].kod;

    Vyuzijes toho, ze HTML je nekonfliktni a to co nezna tak on ignoruje ... neni to treba pak davat do value a oddelovat strednikem, bylo by to moc prace a takhle je to elegantnejsi...

    tomas:
    co je to za vlastnost .kod.... to neni dobra cesta.... proste respektuj, ze textovou hodnotu z optionu si vyzvednes pomoci objDom.text
    pavel:

    to nejni zadna vlastnost, tam si das atribut jakej chces

    tomas:

    takze mySel.options[mySel.selectedIndex].text - dle pravidel a jedes

    pavel:

    ale text ti vrati cestina nebo slovenstina... kdezto .kod ti vrati sk nebo cz .. . prijde ti to jako hodne brutalni hack? Hodne proti specifikaci?...

    tomas:

    takze nevim, co to vlastne znamena... <option value="cosi" kod="cz"> ...?

    pavel:

    jde to k libovolnymu HTML tagu

    tomas:

    hm, ale to je prasecina... m uzes si takto jiste pomoc, jjako ze nestihas, a pak to refaktor... ale priznejme si, co jednou napises a funguje to budes to opravovat... proto ta ambice vas presvedcit, udelej to na poprve at nemusis nic predelavat....

    pavel:

    podle me to nicemu nevadi, stejne podporujem jen IE. Treba to nejni cisty, ale kdo dneska umi psat ciste HTML a JS? Ja teda ne a ani po tom netouzim ucit se ten balast

    tomas:

    hm, ale to je prasecina... m uzes si takto jiste pomoc, jjako ze nestihas, a pak to refaktor... ale priznejme si, co jednou napises a funguje to budes to opravovat... proto ta ambice vas presvedcit, udelej to na poprve at nemusis nic predelavat....

    pavel:

    to mi rekni co ti na tom tolik vadi, me to fakt zajima ... podle me to nejni nic proti nicemu ...

    tomas:

    java drzi te zkratka... a je to dobre... jsko je takovej hipik, co si proste zahuli, no a jednou to provede takhle a podruhe takhel.... nejmene 3 zpusoby jak napsat jednu vec......

    pavel:

    za to si muze JS sam, ze jde napsat jedna vec aspon tremi zpusoby ... ale tohle nejni jen o JS, spis o HTML ... z JS se to jen precte ...

    pavel:

    hmm, to se mas, ja JS poznal a zjistil jsem ze v nem uz nikdy nechci psat >] ... jinak porad nevim co ti na tom ze si dam vlastni atribut k HTML elementu vadi

    tomas:

    dej link... jinak abych neodchazel od tematu.... ano je to i na tom zasranym HTML, ze to povoli v zavislosti s IE, ale je to proste necisty option proste nemam mit nic krome NAME a VALUE... tim se proste ridim... toze to jde napsat i takto, fajn kdyz to funguje, taky dobre...

    pavel:

    tak už jsem vyřešil i to, že to podle tebe jede jen v IE :-D

    tomas:

    do emailu mi prisel kod, kt. je dole pod diskuzi....

    hele to je zneuziti DOMu....! obj.getAttribute('atrrName')..... proste existuje nejake DTD... sakra, vzdyt ty XSD schemator.... ty kt, hlida obsah, sam zanasi takove veci do kodu.... hm, budeme si muset na toto tema si pohovorit... nejlepe nekde u pivka, chlazenyho... hhahahhah,... result.... ano beru, diky za pouceni... DOM je mocna vec... vsak ji z Javy jiste znas...

    pavel:

    zneuziti DOMu - si pripadam jak nejakej nasilnik :-)­

    tomas:

    co to je atribut "pozdrav"... http://www.w3.org/TR/html4/interact/forms.html#adef-name-BUTTON ... zadny pozdrav tam nevidim ... ;-) ... to je prani xml-freedom-atribut-name-specification do html, neeee.... na to mas xml, xml pekne nastylujes, a pak muzes delat takoveto veci...

    pavel:

    a co si myslis ze je html? ... html je prece XML­

    tomas:

    nee , to je jenom jeho podmnozinou a to takovou, ze ma svou vlastni mnozinu definovanych tagu a jejich atributu a ani kousek navic.... zadny specificke attrs... ... na to je fakt ciste xml... to pak rozumim...

    pavel:

    ok, takze podle trebe bych si na to mel udelat vlastni namespace aby se to ciste oddelilo od HTML ­

    tomas:

    hm, zajimave.... ... to je napad... jejej... to si vyzkousim...



    Kod k diskuzi
    
        <input type="button" value="Only IE" pozdrav="Hello IE!" onclick="alert(this.pozdrav);">

    <input type="button" value="Browser independent" pozdrav="Hello IE, Mozilla, Opera!"
    onclick="alert(this.getAttribute('pozdrav'));">

    Co si o tom myslite? Kdo nas rozetne?

           

    Hodnocení: 33 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    10.8.2007 10:02 phero | skóre: 17 | blog: techblog
    Rozbalit Rozbalit vše Re: HTML /XML - libovolny zapis dat, ale za jakou cenu
    Holt ignorant, az neco bude chtit tak mu to napis treba v EBCDIC
    10.8.2007 10:07 Pavel
    Rozbalit Rozbalit vše Re: HTML /XML - libovolny zapis dat, ale za jakou cenu
    Můžeš to drobet rozvést? Pořád mi zatim nikdo nevysvětlil, proč to takhle neudělat.
    10.8.2007 10:08 phero | skóre: 17 | blog: techblog
    Rozbalit Rozbalit vše Re: HTML /XML - libovolny zapis dat, ale za jakou cenu
    Neresim tu diskusi, jen tvuj only-IE attitude.
    derddddd avatar 10.8.2007 10:08 derddddd | skóre: 4 | blog: lama_log | Pisek
    Rozbalit Rozbalit vše Re: HTML /XML - libovolny zapis dat, ale za jakou cenu
    Musim upozornit, ze je to muj kolega, jehoz prioritou je psani server-side app by" java, do klienta (xsl/html/js) je proste jenom "navezen" zeshora, aby si spravoval celou app sam.
    Snad se tady neztratím...:))
    10.8.2007 10:07 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: HTML /XML - libovolny zapis dat, ale za jakou cenu
    Používám pro tohle jiný namespace, tj. např.
    <select id="mySel">
      <option value="1" myns:kod="cz">cestina</option>
      <option value="2" myns:kod="sk">slovenstina</option>
      <option value="3" myns:kod="en">anglictina</option>
    </select>
    
    Trochu nešikovné je, že v prohlížečích splňující standardy (postavené na Gecko, KHTML/WebKit nebo Opera) se pak používají metody getAttributeNS a podobné, v MSIE se musí použít getAttribute a jako název atributu se použije prefix:název. Ale používám wrapper, který podle potřeby použije tu správnou metodu.

    Použití je podle mne v pořádku, prohlížeč, který splňuje normu HTML, musí neznámé atributy ignorovat – problémy by s tím tedy mohl mít jedině takový HTML parser, který porušuje jeden z nejdůležitějších principů HTML. A takový parser by asi moc dlouho nepřežil.
    derddddd avatar 10.8.2007 10:09 derddddd | skóre: 4 | blog: lama_log | Pisek
    Rozbalit Rozbalit vše Re: HTML /XML - libovolny zapis dat, ale za jakou cenu
    No vida, dekujeme... o tomhle sme mluvili.....
    Snad se tady neztratím...:))
    10.8.2007 10:11 Pavel
    Rozbalit Rozbalit vše Re: HTML /XML - libovolny zapis dat, ale za jakou cenu
    Použití je podle mne v pořádku, prohlížeč, který splňuje normu HTML, musí neznámé atributy ignorovat – problémy by s tím tedy mohl mít jedině takový HTML parser, který porušuje jeden z nejdůležitějších principů HTML. A takový parser by asi moc dlouho nepřežil.
    Tak tohle je přesně to, o co se mé řešení opírá. Jinak použití jiného namespace beru, je to určitě čistější, ale v podstatě to samý jako můj příklad ;)
    10.8.2007 10:24 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: HTML /XML - libovolny zapis dat, ale za jakou cenu
    Tak tohle je přesně to, o co se mé řešení opírá. Jinak použití jiného namespace beru, je to určitě čistější, ale v podstatě to samý jako můj příklad ;)
    Je tu drobný rozdíl, který počítá s tím, že někdo v budoucnosti jasně řekne, jak má webový prohlížeč zacházet se jmennými prostory, které nezná. Pokud nepoužijete jiný namespace, bude mít třeba validátor oprávněné námitky a váš dokument nebude validní XHTML dokument. Pokud ale použijete jiný namespace, zůstane XHTML validním XHTML dokumentem – pouze musí být stanoveno, zda takový dokument může obsahovat i jiné jmenné prostory. To pro XHTML zatím nikde stanoveno není, ale zakázat to by postrádalo logiku. Že to XHTML nedefinuje ale není jeho problém, ono zatím vůbec není jasné, jak s dokumenty z různými jmennými prostory zacházet. Pomocí XML schémat je sice už možné nadefinovat pro jeden dokument použití víc jmenných prostorů, ale zatím není nadefinováno to nejdůležitější – jak vytvářet dokumenty vyhovující více schématům, případně jak zacházet s rozšířenými schématy (existující schéma obohatím o nové prvky).

    Záměně píšu o XHTML a ne HTML, protože z HTML5 které nebude zároveň XML se mi dělá špatně, protože to konzervuje současný katastrofální stav na dalších deset patnáct let. No ale aspoň to za těch deset let bude už tak špatné, že bude chuť a vůle k radikálnímu řezu a vytvoří se něco úplně nového, co nebude muset být s HTML vůbec kompatibilní.
    14.8.2007 11:31 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: HTML /XML - libovolny zapis dat, ale za jakou cenu
    Ono je třeba otevřeně přiznat, že DTD patří k SGML a u XML je chudým příbuzným. Takže pokusy o kombinovaná DTD jsou dle mého názoru věc úsměvná, ne-li pošetilá.

    RelaxNG umožňuje povolit výskyt neznámých (cizích) elementů, nicméně poněkud kostrbatě. V tomto směru máte pravdu, že jednotlivé jazyky definující schéma XML dokumentů neumožňují částečnou validaci o jiný jmenný prostor rozšířených dokumentů.

    Avšak existuje Namespace-based Validation Dispatching Language, který vytváří další validační vrstvu, která podle zadaného jmenného prostoru předhazuje validátorům strom zbavený cizích elementů.

    Z praktického hlediska lze ale říci, že XML aplikace se umí úspěšně vyrovnat s mixem jmenných prostorů (např. Mozilla a XHML + SVG + MathML + XLink nebo libxslt a XSLT + XInclude).
    Daniel Kvasnička ml. avatar 14.8.2007 12:38 Daniel Kvasnička ml. | skóre: 52 | blog: The Joys and Sorrows of Being an IT Freak | Ostrava
    Rozbalit Rozbalit vše Re: HTML /XML - libovolny zapis dat, ale za jakou cenu
    Z praktického hlediska lze ale říci, že XML aplikace se umí úspěšně vyrovnat s mixem jmenných prostorů
    No jeste aby ne :-) To je prece jedna z hlavnich roli NS, od toho je X v XML jako eXtensible :-) Kdyby to XML aplikace neumela, tak vubec XML aplikaci neni.
    FSF: “screw you for not wanting the stuff we produce”, People: “screw you for not producing the stuff we want."
    15.8.2007 17:52 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: HTML /XML - libovolny zapis dat, ale za jakou cenu
    Já narážím na to, že validace se považuje někdy za nezbytnou, někdy za zbytnou.

    Aplikace vám ráda zpracuje dokument, který bude obsahovat elementy z cizího NS. Aplikace možná s protesty zpracuje dokument, který bude obsahovat elementy ze stejného NS, ale podle schématu by tam neměly co dělat. Aplikace zcela určitě padne na chybějícím elementu.

    Líný programátor stanoví schéma a prohlásí, že jeho program zpracuje jen validní dokument. Pak ovšem celá rozšiřitelnost jde do háje, neb dnes neexistuje popis schématu umožňující svobodně rozšiřovat dokumenty a zároveň dodržet validitu. Dnes neexistuje dohoda, která by definovala, co s elementy z cizího NS. Mají se propouštět dál, mají se vyřezávat? Mají se rekurzivně zpracovávat? Co s uzly bez NS (text, CDATA, PI, komentář)?

    Třeba Mozilla vám libovolný textový uzel zobrazí jako text. Chtěli byste ale, aby při tisku vcardu, do kterého si někdo doplní poznámku z jiného NS, že dotyčný je vůl, se také tiskly všechny textové uzly?
    Daniel Kvasnička ml. avatar 11.8.2007 10:57 Daniel Kvasnička ml. | skóre: 52 | blog: The Joys and Sorrows of Being an IT Freak | Ostrava
    Rozbalit Rozbalit vše Re: HTML /XML - libovolny zapis dat, ale za jakou cenu
    No bez vlastniho namespace je to prasarna ukrutna... jak psal Filip Jirsak, nadefinuj si vlastni namespace, spravne ho v dokumentu zaregistruj a je to v pohode.

    Validator ti samozrejme zarve, protoze DOCTYPE XHTML tohle nedovoluje, ale tohle je pripad, kdy bych validator s naprostym klidem ignoroval. Z hlediska XML je to uplne regulerni praktika a prohlizece to (spravne) ignoruji. Hosi je to bohuzel s tagy v jinem NS, ty je mozne v normalnich prohlizecich skryt CSSkem (kdyz uz je neignoruji), ale IE v tomhle pripade nereaguje ani na CSS :-(

    Na tvorbu nejakych pokrocilejsich rozhrani treba pro CMS vyuzivajicich hodne AJAXu je tahle praktika dost ku pomoci.
    FSF: “screw you for not wanting the stuff we produce”, People: “screw you for not producing the stuff we want."

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.