abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 11:22 | Pozvánky

    Společnost initMAX pořádá sérii bezplatných webinářů věnovaných novému Zabbixu 7.4. Podrobnosti a registrace na webu initMAX.

    … více »
    Heřmi | Komentářů: 0
    dnes 03:44 | Nová verze

    Byla vydána verze 7.0 open source platformy pro správu vlastního cloudu OpenNebula (Wikipedie). Kódový název nové verze je Phoenix. Přehled novinek v poznámkách k vydání v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    dnes 00:11 | Nová verze

    E-mailový klient Thunderbird byl vydán ve verzi 140.0 ESR „Eclipse“. Jde o vydání s dlouhodobou podporou, shrnující novinky v upozorněních, vzhledu, správě složek a správě účtů. Pozor, nezaměňovat s průběžným vydáním 140.0, které bylo dostupné o týden dříve.

    Fluttershy, yay! | Komentářů: 1
    včera 15:11 | IT novinky

    Organizace Video Games Europe reprezentující vydavatele počítačových her publikovala prohlášení k občanské iniciativě Stop Destroying Videogames.

    Ladislav Hagara | Komentářů: 0
    včera 13:22 | IT novinky

    Společnost Raspberry Pi nově nabzí Raspberry Pi Camera Module 3 Sensor Assembly, tj. samostatné senzorové moduly z Raspberry Pi Camera Module 3.

    Ladislav Hagara | Komentářů: 0
    včera 13:00 | Nasazení Linuxu

    Cathode Ray Dude v novém videu ukazuje autorádio Empeg Car (později Rio Car) z let 1999–2001. Šlo o jeden z prvních přehrávačů MP3 do auta. Běží na něm Linux. Vyrobeno bylo jen asi pět tisíc kusů, ale zůstala kolem nich živá komunita, viz např. web riocar.org.

    Fluttershy, yay! | Komentářů: 0
    včera 02:11 | Nová verze

    Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána v nové verzi 2025.7.

    Ladislav Hagara | Komentářů: 0
    včera 01:44 | Nová verze

    Wayland byl vydán ve verzi 1.24.0. Jde o menší vydání po více než roce. Více funkcionality bývá přidáváno v průběžných vydáních Wayland Protocols.

    Fluttershy, yay! | Komentářů: 0
    6.7. 23:44 | Nová verze

    Textový editor Geany byl vydán ve verzi 2.1. Jde o udržovací vydání po bezmála dvou letech. Obsahuje drobná vylepšení vyhledávání, aktualizace podpory zvýrazňování syntaxe a dále převážně opravy chyb.

    Fluttershy, yay! | Komentářů: 1
    6.7. 19:44 | Komunita

    Byly zveřejněny videozáznamy, dostupné také s prezentacemi přímo z programu, a také fotogalerie z open source komunitní konference DevConf.CZ 2025 konané od 12. do 14. června v Brně.

    Ladislav Hagara | Komentářů: 0
    Jaký je váš oblíbený skriptovací jazyk?
     (60%)
     (27%)
     (7%)
     (2%)
     (1%)
     (1%)
     (3%)
    Celkem 370 hlasů
     Komentářů: 16, poslední 8.6. 21:05
    Rozcestník

    WYSIWYG editor online - 2 (formátovánie textu)

    11. 8. 2006 | Matej Gagyi | Programování | 8137×

    V minulej časti sme si vytvorili jednoduchý textový editor priamo na stránke. Dnes ho rozšírime o funkcie formátovania textu a editor samotný zaradíme do formuláru na stránke. Tiež sa oboznámime s niekoľkými nedostatkami editora Midas, ktoré nie je jednoduché riešiť.

    Formátovanie textu

    Aktivovanie editora nad HTML dokumentom sprístupní JavaScriptu štyri nové funkcie dokumentu: execCommand(), queryCommandEnabled(), queryCommandState(), queryCommandValue().

    Najdôležitejšou z týchto funkcií je execCommand(), ktorá formátuje text, vkladá do dokumentu obrázky a odkazy, vracia zmeny dokumentu (undo/redo), atď. Funkcia execCommand() očakáva 3 parametre:

    document.execCommand(command, userInterface, value)

    Argumenty funkcie execCommand():

    command
    Názov operácie, ktorú chceme vykonať. Niektoré operácie pracujú s označeným textom, niektoré s pozíciou textového kurzora a niektoré s celým dokumentom. Pozrite si tabuľku najdôležitejších operácií.
    userInterface
    Musí byť vždy false, inak funkcia vyhodí výnimku NS_ERROR_NOT_IMPLEMENTED.
    value
    Niektoré operácie vyžadujú dodatočný parameter. Napríklad ak vytvárame hypertextovy odkaz, ako parameter odovzdáme adresu, na ktorú má odkaz smerovať: document.execCommand('createlink', false, 'http://www.abclinuxu.cz');

    V praxi vykonáva funkcia execCommand() celú prácu za nás a nemusíme sa starať o nič iné, ako volanie tejto funkcie so správnymi argumentami. Rozšírme teda primitívny editor z minulej časti o niekoľko formátovacích funkcií:

    <html>
     <head>
      <title>Moj druhy WYSIWYG editor</title>
      <script type="text/javascript">
       var editor;
       function setup() {
        editor = document.getElementById('editor');
        editor.contentWindow.document.designMode='on';
       }
       function editor_alert() {
        alert(editor.contentWindow.document.body.innerHTML);
       }
       function editor_execCommand(command, value) {
        editor.contentWindow.document.execCommand(command, false, value);
       }
      </script>
     </head>
     <body onload="setup();">
      <p>Tento text nie je editovatelny... editujte obsah v ramci, prosim.</p>
      <iframe id="editor" src="template.html"></iframe>
      <p>Nastrojovy panel:</p>
      <ul>
       <li><a href="javascript: editor_alert();">
            Ukaz mi to HTML!</a></li>
       <li><a href="javascript: editor_execCommand('undo');">
            Undo</a></li>
       <li><a href="javascript: editor_execCommand('redo');">
            Redo</a></li>
       <li><a href="javascript: editor_execCommand('bold');">
            Tucne</a></li>
       <li><a href="javascript: editor_execCommand('italic');">
            Kurziva</a></li>
       <li><a href="javascript: editor_execCommand('underline');">
           Podskrtnute</a></li>
       <li><a href="javascript: editor_execCommand('strikethrough');">
           Preskrtnute</a></li>
       <li><a href="javascript: editor_execCommand('removeformat');">
           Normalne</a></li>
       <li><a href="javascript: editor_execCommand('formatblock', '<h1>');">
           Nadpis 1</a></li>
       <li><a href="javascript: editor_execCommand('formatblock', '<h2>');">
           Nadpis 2</a></li>
       <li><a href="javascript: editor_execCommand('formatblock', '<h3>');">
           Nadpis 3</a></li>
       <li><a href="javascript: editor_execCommand('formatblock', '<p>');">
           Odstavec</a></li>
      </ul>
     </body>
    </html>

    Pridali sme do hlavného dokumentu ďalšiu JavaScriptovú funkciu editor_execCommand(). Očakáva 2 argumenty, ale pri volaní tejto funkcie si môžeme dovoliť druhý argument vynechať. V JavaScripte to nie je chyba, v tele funkcie bude tento argument nastavený na hodnotu undefined a táto hodnota je takmer to isté ako hodnota null.

    Funkcia editor_execCommand() jednoducho volá funkciu execCommand() editovaného dokumentu a odovzdá mu svoje vlastné dva argumenty. Pridávať môžeme aj ďalšie funkcie z nasledujúcej tabuľky:

    Operácia Hodnota Popis
    undo   Vráti jednu zmenu v dokumente.
    redo   Znovu vykoná jednu vrátenú zmenu v dokumente.
    formatblock <h1>, <h2>, ..., <p>, <pre>, ... Uzavrie odstavec textu do zvoleného HTML tagu.
    insertimage adresa obrázku Vloží na dokument obrázok.
    removeformat   Odstráni všetky formátovacie HTML značky z označeného textu.
    createlink adresa Vytvorí z označeného textu hypertextový odkaz zo zvolenou adresou.
    unlink   Zmení hypertextový odkaz na text.

    Kompletný zoznam príkazov podporovaných editorom Midas nájdete na v špecifikácii Midasu. Príkazy MSHTML Editoru sa nachádzajú v knižnici MSDN - Command Identifiers.

    Odosielanie dokumentu na server

    Odoslať HTML dokument po upravení na server môžeme viacerými spôsobmi. Najjednoduchšie je dokument zakódovať do adresy dopytovanej webovej služby ako argument. To znamená, že ak sme umiestnili webovú službu, ktorá dokument prijme a spracuje na adresu http://example.com/service a dokument vyzerá takto:

    <h1>Ahoj svet!</h1><p>K&R napísali prvý
    unix?</p>

    tak pomocou JavaScriptu otvoríme v prehliadači adresu

    http://example.com/service?text=%3Ch1%3EAhoj%20svet!%3C%2Fh1%3E%3Cp%3EK% 26R%20nap%C3%ADsali%20prv%C3%BDunix%3F%3C%2Fp%3E

    Funkcia v JavaScripte

    function send_document(host) {
     window.location.href = host + '?html='
       + encodeURIComponent(editor.contentWindow.document.body.innerHTML);
    }

    Položka nástrojového panelu

    <li><a href="javascript: send_document('http://example.com/');">
      Odoslat na example.com</a></li>

    Záver

    Nabudúce si prejdeme ďalšie možnosti odosielania dokumentu na server. Ďalej si ukážeme trik, ktorým uložíme dokument z Firefoxu na disk. Nakoniec si povieme pár slov o ostatných prehliadačoch podporujúcich WYSIWYG editor.

           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

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

    Komentáře

    Vložit další komentář

    11.8.2006 09:13 Jirka
    Rozbalit Rozbalit vše Re: WYSIWYG editor online - 2 (formátovánie textu)
    Podle me je naprosty nesmysl vytvaret WYSIWYG editor ktery nesplnuje standard XHTML (strict). A to urcite pouziti tagu <a href="javascript: ma_se_pouzit_onclick()">javascript akce</a> nesplnuje! Ty standardy nejsou jen tak pro srandu kralikum. A vymluva, ze to splnuje standard HTML 4.01, je v dnesni dobe tak trochu mimo misu. Nevim o zadnem opravdu XHTML STRICT wysiwyg editoru, jehoz vystup by prosel validaci na w3c.org. Pokud nekdo vite, podelte se o zkusenosti.
    11.8.2006 12:56 Láďa
    Rozbalit Rozbalit vše Re: WYSIWYG editor online - 2 (formátovánie textu)
    Další spravedlivý hněv. Zkuste říct zákazníkovi, že má smůlu, protože to nesplňuje nějaké standardy, o kterých v životě neslyšel.
    11.8.2006 13:10 Stefan
    Rozbalit Rozbalit vše Re: WYSIWYG editor online - 2 (formátovánie textu)
    Takže když žádný neexistuje a nesmíme porušovat standardy tak nemůžete vytvářet žádné redakční systémy a tak na webu nic nebude. Co vlastně přesně je porušeno ve zde zmiňovaném tagu ? Standardy od W3C jsou pouze doporučení http://www.w3.org/2004/02/Process-20040205/tr#RecsW3C Je trochu problém v praxi používat doporučení které prohlížeče nesplňují. HTML 4.01 není nikde označeno jako nepoužitelné, takže i v dnešní době má své místo a prohlížeče ho podporují na rozdíl od XHTML
    11.8.2006 15:17 Platonix | skóre: 20 | blog: FUD: Férový Uživatelův Deníček
    Rozbalit Rozbalit vše Re: WYSIWYG editor online - 2 (formátovánie textu)
    Osobně se snažím standardy dodržovat, ale HTML 4.01 Transitional je taky standard, tak proč nepoužít ten?
    Když já tomu prostě nerozumím. Kdo si neváží svobody, je na půli cesty o ni přijít
    11.8.2006 15:18 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
    Rozbalit Rozbalit vše Re: WYSIWYG editor online - 2 (formátovánie textu)
    Není to snad jedno? Podstatné je zda splnuje standard XHTML výsledný produkt - tedy hotová stránka.
    Yin avatar 18.8.2006 13:16 Yin | skóre: 39 | blog: Yinotopia | Slovesnko, Košice
    Rozbalit Rozbalit vše Re: WYSIWYG editor online - 2 (formátovánie textu)

    Kde v špecifikácii XHTML 1.0 STRICT sa píše, že URL v atribúte href nesmie mať protokol "javascript:"? Odporúča sa to, aby stroje vedeli, že po kliknutí na odkaz sa vykoná nejaký kód (aj tak im je to na figu).

    Môj anchor je odkaz na funkciu a je mi jedno, ako ju bude užívateľ spúšťať. Keby som použil atribúť onclick, musel by som vytvoriť aj CSS pre ten odkaz, aby každý pochopil, že na neho treba kliknúť.

    A vôbec, aký súvis má stránka s editorom s kódom, ktorý generuje? Veď si to kludne doma prepíšte podľa seba. A tento tutoriál vám má pomocť pochopiť tento druh editorov, aby ste si mohli vytvoriť vlastný generátor čistého XHTML kódu.

    Vidíte? teraz ste ma rozčúlil... a musim si zase prekompilovať jadro, aby som sa ukludnil!

    Nikdy nie je tak zle, aby to jeden poharik nemohol ešte zhorsiť.
    25.9.2006 22:57 miki
    Rozbalit Rozbalit vše Re: WYSIWYG editor online - 2 (formátovánie textu)
    No, existuje preci jeste reseni na strane serveru - kdyz javascript produkuje nevalidni kod, je sice narocnejsi vytvorit nejaky "opravovaci" parser, nicmene wysiwyg editor je tu vetsinou pro zakaznika, ne pro developera... takze se vlk nazere a koza zustane cela (kdyz neberu v potaz, ze to kozu musime nejdriv porodit .)
    14.10.2006 18:19 coolll.sk
    Rozbalit Rozbalit vše Re: WYSIWYG editor online - 2 (formátovánie textu)
    Neviete niekto ako sa da k takemu iframovemu editoru priradit subor so stylmy (CSS)?
    8.4.2007 18:28 Radke Novák
    Rozbalit Rozbalit vše Re: WYSIWYG editor online - 2 (formátovánie textu)
    Ahoj, je to opravdu moc pěkný tutoriál. Mnohé jsem z něho použil. Abych to mohl odesílat s ostatními daty formuláře udělal jsem funkci na uložení výsledného HTML opět do [textarea] který se odešle.

    Co ale netuším je, jak dostat HTML do námi vytvořeného wisiwig editoru. Respektive, když vlezu na stránku, kde budu mít ve skryté [textarea] kód HTML, aby se to načetlo do wisiwig editoru.

    Snad víš co mám na mysli.

    Díky moc

    Radek Novák
    8.4.2007 19:27 Radke Novák
    Rozbalit Rozbalit vše Re: WYSIWYG editor online - 2 (formátovánie textu)
    tak jsem na to přišel a to takto (nevím zdali to funguje i pro ostatní prohlížeče, nad tím budu bádat jindy):

    function vlozit_do_editoru() { document.getElementById('editor').contentWindow.focus(); document.getElementById('editor').contentWindow.document.selection.createRange().pasteHTML(document.getElementById('textarea_editor').value); }

    do iframe vložte metodu onload="vlozit_do_eidtoru();"

    toť vše
    18.4.2007 17:24 Smajchl | skóre: 39 | blog: Drzy_Nazory | Praha
    Rozbalit Rozbalit vše Re: WYSIWYG editor online - 2 (formátovánie textu)
    Uz se tesim na dalsi dil :-)
    My máme všechno co chcem, my máme dobrou náladu!
    12.6.2007 23:21 Petr
    Rozbalit Rozbalit vše Re: WYSIWYG editor online - 2 (formátovánie textu)
    Zdravim, ak zrobit aby pri createlink byla adresa prave ta ktoru omaznem?
    5.12.2007 23:08 Kudla
    Rozbalit Rozbalit vše Re: WYSIWYG editor online - 2 (formátovánie textu)
    Nemá někdo ňákej skriptík na editování tablek?? Nebo ňákej odkázek. Díky.
    29.12.2007 12:16 Martin
    Rozbalit Rozbalit vše Re: WYSIWYG editor online - 2 (formátovánie textu)
    Možná Vám pomůže tato ukázka:

    http://www.mozilla.org/editor/midasdemo/

    Založit nové vláknoNahoru

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