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 15:00 | Zajímavý článek

    Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.

    Ladislav Hagara | Komentářů: 0
    13.6. 17:33 | Nová verze

    Byla vydána (𝕏) nová verze 2025.2 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem nových nástrojů v oficiálním oznámení na blogu.

    Ladislav Hagara | Komentářů: 0
    13.6. 10:33 | Komunita

    Dánské ministerstvo pro digitální záležitosti má v plánu přejít na Linux a LibreOffice [It's FOSS News].

    Ladislav Hagara | Komentářů: 19
    13.6. 09:22 | Komunita

    V úterý Google vydal Android 16. Zdrojové kódy jsou k dispozici na AOSP (Android Open Source Project). Chybí (zatím?) ale zdrojové kódy specifické pro telefony Pixel od Googlu. Projekty jako CalyxOS a GrapheneOS řeší, jak tyto telefony nadále podporovat. Nejistá je podpora budoucích Pixelů. Souvisí to s hrozícím rozdělením Googlu (Google, Chrome, Android)?

    Ladislav Hagara | Komentářů: 3
    12.6. 20:22 | Nová verze

    Byla vydána (𝕏) květnová aktualizace aneb nová verze 1.101 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.101 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    12.6. 10:00 | Komunita

    V Brně na FIT VUT probíhá třídenní open source komunitní konference DevConf.CZ 2025. Vstup je zdarma, nutná je ale registrace. Na programu je celá řada zajímavých přednášek, lightning talků, meetupů a workshopů. Přednášky lze sledovat i online na YouTube kanálu konference. Aktuální dění lze sledovat na Matrixu, 𝕏 nebo Mastodonu.

    Ladislav Hagara | Komentářů: 0
    12.6. 09:44 | IT novinky

    Vyloučení technologií, které by mohly představovat bezpečnostní riziko pro stát, má umožnit zákon o kybernetické bezpečnosti, který včera Senát schválil spolu s novelami navazujících právních předpisů. Norma, kterou nyní dostane k podpisu prezident, počítá rovněž s prověřováním dodavatelů technologií pro stát. Normy mají nabýt účinnosti od třetího měsíce po jejich vyhlášení ve Sbírce zákonů.

    Ladislav Hagara | Komentářů: 4
    12.6. 01: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.6.

    Ladislav Hagara | Komentářů: 0
    12.6. 00:55 | Nová verze

    Po Red Hat Enterprise Linuxu a AlmaLinuxu byl v nové stabilní verzi 10.0 vydán také Rocky Linux. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    11.6. 22:55 | Nová verze

    Bylo vydáno Eclipse IDE 2025-06 aneb Eclipse 4.36. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.

    Ladislav Hagara | Komentářů: 0
    Jaký je váš oblíbený skriptovací jazyk?
     (56%)
     (31%)
     (7%)
     (2%)
     (0%)
     (1%)
     (3%)
    Celkem 267 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.