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 20:44 | IT novinky

    Americký výrobce čipů Nvidia získal od vlády prezidenta Donalda Trumpa souhlas s prodejem svých pokročilých počítačových čipů používaných k vývoji umělé inteligence (AI) H20 do Číny. Prodej těchto čipů speciálně upravených pro čínský trh by tak mohl být brzy obnoven, uvedla firma na svém blogu. Americká vláda zakázala prodej v dubnu, v době eskalace obchodního sporu mezi oběma zeměmi. Tehdy to zdůvodnila obavami, že by čipy mohla využívat čínská armáda.

    Ladislav Hagara | Komentářů: 0
    dnes 17:22 | Nová verze

    3D software Blender byl vydán ve verzi 4.5 s prodlouženou podporou. Podrobnosti v poznámkách k vydání. Videopředstavení na YouTube.

    Ladislav Hagara | Komentářů: 0
    včera 22:22 | Komunita

    Open source webový aplikační framework Django slaví 20. narozeniny.

    Ladislav Hagara | Komentářů: 0
    včera 16:11 | Komunita

    V Brestu dnes začala konference vývojářů a uživatelů linuxové distribuce Debian DebConf25. Na programu je řada zajímavých přednášek. Sledovat je lze online.

    Ladislav Hagara | Komentářů: 0
    včera 11:33 | IT novinky

    Před 30 lety, tj. 14. července 1995, se začala používat přípona .mp3 pro soubory s hudbou komprimovanou pomocí MPEG-2 Audio Layer 3.

    Ladislav Hagara | Komentářů: 26
    včera 10:55 | IT novinky

    Výroba 8bitových domácích počítačů Commodore 64 byla ukončena v dubnu 1994. Po více než 30 letech byl představen nový oficiální Commodore 64 Ultimate (YouTube). S deskou postavenou na FPGA. Ve 3 edicích v ceně od 299 dolarů a plánovaným dodáním v říjnu a listopadu letošního roku.

    Ladislav Hagara | Komentářů: 20
    13.7. 17:55 | Zajímavý projekt

    Společnost Hugging Face ve spolupráci se společností Pollen Robotics představila open source robota Reachy Mini (YouTube). Předobjednat lze lite verzi za 299 dolarů a wireless verzi s Raspberry Pi 5 za 449 dolarů.

    Ladislav Hagara | Komentářů: 17
    11.7. 16:44 | Komunita

    Dnes v 17:30 bude oficiálně vydána open source počítačová hra DOGWALK vytvořena v 3D softwaru Blender a herním enginu Godot. Release party proběhne na YouTube od 17:00.

    Ladislav Hagara | Komentářů: 3
    11.7. 14:55 | Humor

    McDonald's se spojil se společností Paradox a pracovníky nabírá také pomocí AI řešení s virtuální asistentkou Olivii běžící na webu McHire. Ian Carroll a Sam Curry se na toto AI řešení blíže podívali a opravdu je překvapilo, že se mohli přihlásit pomocí jména 123456 a hesla 123456 a získat přístup k údajům o 64 milionech uchazečů o práci.

    Ladislav Hagara | Komentářů: 16
    11.7. 00:11 | Nová verze

    Byla vydána (𝕏) červnová aktualizace aneb nová verze 1.102 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.102 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    Jaký je váš oblíbený skriptovací jazyk?
     (59%)
     (26%)
     (7%)
     (3%)
     (1%)
     (1%)
     (4%)
    Celkem 397 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í | 8138×

    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.