TEXTAREA++ a JavaScript ereje



Hasonló dokumentumok
Szabadkai Műszaki Szakfőiskola. Web programozás. dr Zlatko Čović

Web programozás. 3. előadás

Akadálymentes weboldalkészítés dióhéjban

Internet technológiák

"Egységes erdélyi felnőttképzés Kárpát-medencei hálózatban" JAVA ALAPÚ WEBPROGRAMOZÁS. M6 Modul: A DOM Modell

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

Készítette: Gál Tamás. A tananyag programozott változata itt érhető el: Webfejlesztés

Bevezetés Működési elv AJAX keretrendszerek AJAX

Táblázatkezelés 2. - Adatbevitel, szerkesztés, formázás ADATBEVITEL. a., Begépelés

Smarty AJAX. Miért jó ez? Ha utálsz gépelni, akkor tudod. Milyen műveletet tudunk elvégezni velük:

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

WEBFEJLESZTÉS 2. ŰRLAPOK, KÉPEK, TÁBLÁZATOK, BÖNGÉSZŐ

WEB PROGRAMOZÁS 3.ELŐADÁS. Űrlapok

1. fejezet Bevezetés a web programozásába (Balássy György munkája) Az internet működése... 11

Választó lekérdezés létrehozása

5-ös lottó játék. Felhasználói dokumentáció

A Microsoft OFFICE. EXCEL táblázatkezelő. program alapjai as verzió használatával

length (s): Az s karaklerlánc hossza, substr(s,m,n): Az s mezőben levő karakterláncnak az m-edik karakterétől kezdődő, n darab karaktert vágja ki.

SMS küldő központ Leírás

4. Javítás és jegyzetek

Villamosmérnöki szak Alkalmazott informatika mellék szakirány Laboratórium II. (VIAU5102) World Wide Web lapok készítése (Silabusz)

Szövegek C++ -ban, a string osztály

Programozó Meta riasztókhoz és Activepark parkolásérzékelőhöz

Adatok bevitele a dokumentumba

Jquery. Konstantinusz Kft.

Kompozit alkalmazások fejlesztése. IBM WebSphere Portal Server

Webtárhely létrehozása a helyen. Lépések Teendő 1. Böngészőbe beírni: 2. Jobb oldalon regisztrálni (tárhelyigénylés).

Környezeti változók, űrlapok kezelése


Responsive Web Design. Dr. Nyéki Lajos 2019

Multimédia 2017/2018 II.

12.óra jquery Framework #1. Gyimesi Ákos

A CorinMail hírlevélküldő rendszer szerkesztőfelületének használata:

Pick Pack Pont kereső és boltválasztó alkalmazás

PHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT

Szöveges műveletek. Mielőtt nekikezdenénk első szövegünk bevitelének, tanuljunk meg néhány alapvető műveletet a 2003-as verzió segítségével:

Valimed API. REST API a magyarországi orvos pecsétszámok validálására

ÚTMUTATÓ A KREATÍVOK ELKÉSZÍTÉSÉHEZ

Oszkar.com Android alkalmazás v1.2

ÚTMUTATÓ A KREATÍVOK ELKÉSZÍTÉSÉHEZ

Országos Területrendezési Terv térképi mellékleteinek WMS szolgáltatással történő elérése, MapInfo program alkalmazásával

Információs technológiák 2. Gy: CSS, JS alapok


Moduláris USB billentyűzet emulátor

Országos Területrendezési Terv térképi mel ékleteinek WMS szolgáltatással történő elérése, MapInfo program alkalmazásával Útmutató 2010.

FELHASZNÁLÓI KÉZIKÖNYV

Felhasználói segédlet a Scopus adatbázis használatához

A szerzõrõl... vii Köszönetnyilvánítás... ix Bevezetés... xi A könyv példakódjai... xiii Áttekintés... xv Tartalomjegyzék... xvii

Mobil SEO Kell-e külön foglalkozni a mobil jelenlétünk kereső optimalizálásával? Adam Lunczner Digital Director

Webfejlesztés Szempontok

Interaktív weboldalak készítése

18. Szövegszerkesztők

Forráskód formázási szabályok

HTML, XML szerkesztés

Információ és kommunikáció

API tervezése mobil környezetbe. gyakorlat

Hálózati projektor használati útmutató

TUDNIVALÓK A WEB-FEJLESZTÉS I. KURZUSRÓL

Földmérési és Távérzékelési Intézet

ONLINE SZAKÉRTŐI KERETRENDSZER

HVK Adminisztrátori használati útmutató

Egészítsük ki a Drupal-t. Drupal modul fejlesztés

HTML. Ismerkedés a JavaScripttel. A JavaScript lehet ségei. A JavaScript kód helye. Önálló JavaScript fájlok

ISA Internetes rendelési felület

TABULÁTOROK TÁBLÁZATOK KÉSZÍTÉSE. A táblázatok készítésének lehetőségei:







Használati útmutató Az online példatárhoz

Természetesen készíts egy csempe nevű könyvtárat és ide mentsd az index.html állományt.

Komplex feliratok készítése Maplex-el. Beke Dániel

Témák. Bevezetés az informatikába 7. Előadás. Szövegfile-ok típusai. Szövegszerkesztők típusai. Mértékegységek. Szövegszerkesztők szolgáltatásai

1. Bevezetés. Főkönyv ablakon (1. ábra) az Új rekord felvitele ( vegyes tétel rögzítése (2. ábra).

Az image objektum. Az image eseménykezel i. Képek el zetes betöltése. Feladat. Váltóképek készítése

Két tűz között. statikus site generátorok és javascript alkalmazások és a Drupal

Kedvenc Ingyenes editorok avagy milyen a programozó jobbkeze? PSPAD editor DEVPHP IDE

C#, OOP. Osztályok tervezése C#-ban

Weboldalkészítés sablonok segítségével Nyitrai Erika. Miről lesz szó? WEBOLDALKÉSZÍTÉS SABLONOK SEGÍTSÉGÉVEL. Saját honlapot szeretnék

akadálymentesen i e Tervezés

Lenyíló menük készítése. Összetett programok készítése

A közép-európai nyelvekhez igazított funkciók Tartalom

Országos Területrendezési Terv térképi mel ékleteinek WMS szolgáltatással történő elérése, Quantum GIS program alkalmazásával Útmutató 2010.

A WORDPRESS TELEPÍTÉSÉNEK LÉPÉSEI

Projektmenedzsment tréning

6. Alkalom. Kép ClipArt WordArt Szimbólum Körlevél. K é p

GoWebeye Monitor Release Üzenetküldés

Thermo1 Graph. Felhasználói segédlet

EuroOffice Professzionális Vonalkód és QR kód generátor

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

SZOLGÁLTATÓI NYILVÁNTARTÁS MŰKENG RENDSZER FELHASZNÁLÓI LEÍRÁSA VII. KÖTET (IKTATÁS, DÖNTÉS KÖZLÉSE, JÓVÁHAGYÓ DÖNTÉS JOGERŐSÍTÉSE SZGYH ÜGYINTÉZŐ)

JavaScript bűvésztrükkök, avagy PDF olvasó és böngésző hackelés

9. Képaláírás, kereszthivatkozás, tárgymutató és jegyzékek

Táblázatok. Táblázatok beszúrása. Cellák kijelölése

Az SQL*Plus használata

Webkezdő. A modul célja

A Vonallánc készlet parancsai lehetővé teszik vonalláncok és sokszögek rajzolását.

RBLDNS DNS-based blocklists management felhasználói kézikönyv

Átírás:

TEXTAREA++ a JavaScript ereje

Bártházi András email: andras@barthazi.hu web: http://barthazi.hu tevékenységek: Weblabor szerkesztő NJSZT-WFSZ titkár stb. :)

Fejlődő web A JavaScript a reneszánszát éli Diszkrét megoldások A következőkben a példák csak szemléltetőek, a praktikus, jó megoldásokat lásd Diszkrét JavaScript cikkemben: http://weblabor.hu/cikkek/diszkretjavascript

A textarea varázsa a textarea mint HTML elem a textarea és a JavaScript tippek a textarea használhatóbbá tételére nem csak kezdőknek nem csak haladóknak

a textarea mint HTML elem HTML elem <textarea></textarea>! id, class, lang name, rows, cols, disabled, readonly, accesskey, tabindex wrap

id egy konkrét elem beazonosítására navigáció (weblap.html#id) #id { tulajdonság: érték } <label for= id > document.getelementbyid( id )

class hasonló célú elemek besorolására (osztályozására).class { tulajdonság: érték } egyszerre több osztály! állapot ( open, error ) getelementsbyclassname(...)

lang a textarea tartalom nyelvének megadására keresők (textarea esetén kérdés) helyesírás ellenőrzők (SpellBound nem támogatja) olvasható, használhatjuk JS-ből

name a textarea egy form elem, a name a POST/GET paraméter nevét határozza meg értéke CDATA, gyakorlatilag ASCII karaktereket tartalmazhat lehetőség: name= form[text]

rows, cols a textarea dimenzióinak meghatározására nem teljesen pontos: IE OK, FF nem, Opera majdnem CSS-ből felülbírálható

disabled= disabled a szövegbevitel, form küldés tiltására nem lesz elküldve, nem szerk. IE: kijelölhető, fehér háttér FF/Opera: nem jelölhető ki, szürke háttér

readonly= readonly a szövegbevitel tiltására nem szerkeszthető, form elemként elküldésre kerül IE, FF, Opera: mintha rendes lenne, de nem módosítható

accesskey= U egy gyorsbillentyű lenyomására fókuszba kerül az elem IE és FF: Alt-U Opera: nem támogatott? hozzáférhetőséget javítja és rontja: a menüt nem lehet elérni

tabindex a tab billenytűvel történő ugrálás sorrendjét befolyásolja például a vizuálisan igen, de a HTML kódban nem egymás mellett levő elemekhez

wrap a textarea sortörésének beállítására értékei: soft, hard és off lehetnek nem szabványos!, de IE, FF és Opera is támogatja

a textarea és a JavaScript DOM objektum JavaScriptből elérhető, programozható value, defaultvalue style, blur(), focus(), setselectionrange(), selectionstart, selectionend, Range

value, defaultvalue a textarea aktuális és kezdeti tartalmának elérésére a defaultvalue is szabványos, IE, FF és Opera támogatja

.style az elem stílusjegyeinek állítására elem.style.backgroundcolor = #ddd ; elem.style.fontsize = 2em ; elem.style.border = 1px solid #000 ; elem. szabály: CSS font-size => JS fontsize

blur(), focus() metódusok a fókusz szabályozására egy textarea-n meghívva a focus()-t, a fókusz rákerül a blur()-t meghívva a fókuszt elveszti oldal betöltődés: fókuszt a lényegre

setselectionrange() a textarea-ban a kiválasztás (kurzor pozíció!) beállítására FF, Opera támogatja, IE nem elem.setselectionrange(2,4) => kiválasztás a 2. karaktertől a 4.-ig elem.setselectionrange(5,5) => kurzor 5. karakter utánra nem árt egy focus(), mert azt nem befolyásolja

.selectionstart.selectionend a textarea-ban a kiválasztás / kurzor pozíciójának beállítására, kiolvasására - támogatás mint az előbb: IE nem, FF, Opera igen var cursorpos = elem.selectionstart; elem.selectionstart = elem.selectionend = 0;

TextRange IE által használt szövegtartomány típus nincs közvetlen kapcsolatban a kurzor pozícióval de a kiválasztásból, kurzor pozícióból szövegtartományt készíthetünk, illetve egy szövegtartomány által jelölt dokumentumrészt kiválaszthatunk

TextRange /2 elem.setselectionrange(5,10) utánzása: var range = elem.createtextrange(); range.collapse(true); range.movestart( character, 5); range.moveend( character, 10); range.select();

TextRange /3 elem kurzor pozíciójának lekérdezése (ronda, de megy) var range = document.selection.createrange(); var length = elem.value.length; var selectionlength = range.text.length; var selectionstart = -1-range.moveStart( character, -length-1); var selectionend = selectionstart + selectionlength;

Tippek Ennyi alapozás után jöjjenek a tippek csak tippek, nem kidolgozott megoldások várható egy letölthető anyag, amiben a konkrét példák is benne vannak (Weblabor.hu)

textarea++ / szavak száma szavak száma mikor hasznos? hogyan kell megszámolni a szavakat? words = elem.value.split(/\s+/).length; pl: window.status = words + szó ;

textarea++ / becsukás az általában nem használt elemeket rejtsük el, mert csak a helyet foglalják pl. szép url generálás, ha a gép jól ékezetmentesít... prototype.js: Object.toggle(item);

textarea++ / max. hossz maximális hossz nincs maxlength mint az <input>-nál az adatbázis limitált, adatvesztés veszélye azonnali visszajelzés pl: onchange= if (this.value.length>1024) { alert ( hosszú ); this.value = this.value.substring(0,1024) }

textarea++ / megváltozott vizuális visszajelzés, ha a textarea tartalma megváltozott value és defaultvalue összehasonlítása textarea.changed { background: #eef; } prototype.js: onkeyup= if (this.value!=this.defaultvalue) { Object.addClassName(this, changed ) } else { Object.removeClassName(this, changed }

textarea++ / betűméret a textarea-ban állítható betűméret: nem jól látók, ergonómia textarea.style.fontsize = 1em ; // IE-ben probléma legyen külön CSS-ben, a la oldal betűméret állítás - s mentsük is el hosszútávra

textarea++ / magasság a textarea magasságának állítása a felhasználói igények szerint automatikus: tiszta megoldás nincs, de trükkök igen - a probléma: nem tudjuk, hány sor van a textarea-ban kézi: két gomb, vagy drag n drop, utóbbi lásd Drupal 4.7 elem.style.height = (15*1.3) + em ; // 15 soros

textarea++ / HTML szerk. lásd Weblabor bbeditor.js eredetileg Publishing Kft.-nél (HA előadás) kifejlesztett megoldás a feladat: gombok, billentyűkombinációk felismerése, megfelelő jelölőelemek (pl: <a href= ></a> kirakása)

textarea++ / HTML szerk. 2 1) a kijelölés köré tegyünk ki egy nyitó és záró elemet a) hol a kurzor? lásd korábban, poss, pose b) mi van kijelölve? item.value.substring(poss, pose) c) új tartalom összerakása: item.value eleje + nyitó + kijelölt + záró + vége

textarea++ / HTML szerk. 3 2) ha a kijelölés már tartalmazza a nyitó elemet, vagy záróelemet, akkor vegyük észre! a) kijelölés tartalmát megszerezni, ahogy az előbb b) regexp-et neki: if (content.match(/<b> <\/b>/)) { alert( b ); }

textarea++ / HTML szerk. 4 ha találtunk, vegyük ki, s ne rakjunk be még a legegyszerűbb reguláris kifejezéssel (replace) kivenni, a tartalom cseréje ugyanaz, mint a beszúráskor

textarea++ / HTML szerk. 5 végül, de nem utolsó sorban: gondoskodni kell az új kurzor pozíciók, kiválasztás beállításáról is a legkényelmesebb, ha az eredeti kijelölés megmarad, ha elé, mögé lett téve új elem, akkor az is legyen a kijelölés része kijelölés mint a korábbiakban, a pozíció karakterlánc hosszakból számítható

Köszönöm Kérdések?