Sunteți pe pagina 1din 43

Tehnologii Web

1.Istoria internetului
Internetul-născut pe fondul Războiului Rece SUA-Rusia (anii 43-57) ca prim
instrument de a comunica informaţiile la distanţă.
-în ’57 sovieticii lansează SPUTNIK luând naştere cursa spaţială
-EISENHOWER solicită departamentului apărării să fondeze ARPA (Advanced
Research Project Agency);
-în ’62 ARPA demarează cercetări în domeniul transmisiunii datelor prin
calculator în vederea creării unei reţele indestructibile în caz de atac nuclear;
-în ’64 Paul Barau crează o reţea bazată pe transmiterea de mesaje prin comutare
de pachete: din motive de securitate informaţia era segmentată şi transmisă în
pachete fiind recompusă la destinaţie; dacă un nod este distrus, informaţia se
transmite pe o rută alternativa;
-în ’68 ARPA se imparte în DARPA şi ARPA NET (conectarea la distanţă,
reţeaua devine internatională)
-în ’75 ia naştere sistemul de operare UNIX (Brian Karnigham, Dennis Ritchie)
bazat pe limbajul C; calculatorul personal ALTAIR şi ca firma Microsoft (Paul
Callen);
-încă din ’73 DSPIP este propus ca standard pentru ARPANET acceptat ca
protocol în ’83;
-în ’79 apare reţeaua de cercetare USENET;
-în ’84 se introduce DNS; DNS ca şi SUN bazate pe UNIX a dus la dezvoltarea
rapidă a internetului, mai ales că în ’87 se crează NSF NET pentru a conecta
centrele cu super calculatoare.
NSF NET = organizaţie necomercială permite conectarea la internet fără
restricţiile cu caracter militar.
ARPA NET dispare în ’90.
-în ’95 accesul internet e asigurat de firme comerciale;
Primul instrument de căutare a fost ARCHIE (’90).
Tot în ’90 Team Berners Lee inventează o metodă de expediere între cercetători a
datelor ce conţin text şi imagini.
-în ’91 se lansează protocolul GOPHER;
-în ’93 apare primul browser numit Mosaic bazat pe elemente Windows ce
integrează imagini cu sunet, text;
Mosaic face ca, dacă în ’93 existau 500 de servere, în ’99 să fie circa 9,2
milioane.
-în ’95 SUN lansează JAVA, iar Microsoft INTERNET EXPLORER;

1
-în 2001 apare tehnologia wireless.
Nevoia de standardizare a generat aparţia unor organisme de standardizare dintre
care: wwwc( World Wide Web Consortium ’94), ISOC, Internet Corporation For
Assigned Names and Numbers.

Obs: wwwc creează standarde şi recomandări RFC (Request For Comment)


pentru a îmbunatăti calitatea web-ului în partea să cea mai activa(www).
Standardele wwwc se referă la:
-html, xhtml, xmn, dom, soap, wsdl, rdf, isoc(non-profit ’92,
reglementeaza standardele educatiei şi politicii internetului).

URL
Obs: Conectarea la internet se face prin cablu UTP, TV, linie telefonică, Radio-
Modem, antena asincronă sau mobil.
URL=Uniform Resource Locator=o adresa unica a unei resurse web.
Conţine 4 părţi:
1) protocolul
2) locaţia
3) numele gazdei, site-ului
4) domeniul conform sintaxei
protocol://locaţia.nume_gazdă.domeniu
Exp: http://informatica.didfr.ub.ro/avizier-electronic
Protocolul reprezintă metoda de accesare a resursei şi reprezintă un set de reguli
de comunicaţie, impreuna cu descrierea formatului mesajelor ce trebuiesc
respectate de calculatoare pentru ca acestea să poată schimba informaţia.
Conform modelului de referinţă OSI există 7 nivele de comunicare,
ultimul, nivelul aplicaţie, deţine cele mai commune protocoale. Cele mai uzuale:
Bit Torrent: protocol partajare fişier e peer-to-peer.
-DNCP -POP3
-FTP -NET BIOS
-HTTP -SOOP
-INAP -TEL NET
-IRC -WAIS
-XMPP
Locaţia
www.stiinte.ub.ro/activitati
Numele gazdei : numele gazdei date de administrator

Organizarea domeniilor pe nivele:


I.1.Guvernamental (gov)

2
2.Militar(mil)
3.Educaţional(edu)
4.Comercial(com)
5.Îmbunatăţirea retelei-NET
II.Domeniul ţării:RO, FR, IT
III.Subdomeniu:UB, USU
IV.Sub-Subdomeniu:stiinte(ub.ro)

Obs: Un computer se identifică teoretic în mod unic pe net prin adresa sa de ip


(nr.binar pe 32 de biţi)
Un ip e format din 4 seturi de numere.
Adresele-de cls A sunt de forma r.c.c.c
-de cls B de forma r.r.c.c
-de cls C de forma r.r.r.c
Adresa ip este tradusa într-un nume gen 231.162....,iar dacă reţeaua e de tip
ETHERNET, conectarea se face uzual în baza adresei MAC a plăcii de reţea.
Obs: Metoda prin care ip-urile li se asociaza un nume se numeste server DNS ce
ruleaza pe servere-le DNS.
Conversia ip nume se face automat.
Obs: Din punct de vedere arhitectural nodurile de internet sunt de 3 tipuri:
a) noduri de nivel mondial(ip de clasa A)-la care sunt conectate nodurile
continentale
b) noduri continentale (ip de clasă B)- la nivelul unei ţări la care sunt conectate
noduri locale ale altor retele (ICM, etc)
c) noduri locale (ip de clasă C)-la nivel local ce trebuie recunoscute de un nod
continental.
Alocarea adreselor de ip se face de catre organizaţii specializate(IANA, RIE,
AFRINIC).
Ip versiunea 6 (ipv6) este generaţia urmatoare de protocol.
Ipv4 folosit la inceputul anului 2004 tinde să nu scaleze, numărul de staţii
conectate la o astfel de reţea fiind limitat. Internetul se apropie de această limită.
Ipv6 implică mărirea spaţiului de adrese de la 2 la 28 ca şi autoconfigurarea
adresei printr-un mecanism fără stări.
Care e diferenţa dintre protocoalele IMAP şi POP3? Prin IMAP se pot citi mail-
urile de pe servere, în timp ce prin POP3 acestea se pot citi după ce s-au
descarcăt pe calculatorul client, offline.
Dezavantajul POP3: autentificarea nu e securizată, userul şi parola circulând de la
client la server, necriptate.

3
WWW reprezintă partea cea mai activa a internetului atat prin prisma utilizării
cât şi a dezvoltării acestuia.
Este o reţea ce stabileşte legătura între nodul internet folosind cu precădere
http pentru regăsirea de informaţii din orice domeniu:
Exp link-uri://ro.wikipedia//modelul_osi
Cum funcţioneaza serviciul www.
Browser-ul comunică prin intermediul protocolului http şi al tcpip cu un
server web.
Practic www funcţionează conform modelului CLIENT SERVER,
browser-ul fiind clientul.
Spre deosebire de ftp, http funcţionează discontinuu. Mai exact:
1. Browser-ul strabileşte o conexiune TCP/IP către server
Protocolul la nivel de aplicaţie utilizat e specificat printr-un număr de port.
(http-80)
2. Browser-ul emite o cerere http către server alcătuită din:
a) linie de cerere (REQUEST-LINE) formată dintr-o comanda http+url
specificat+versiunea protocolului http utilizată;
b) un antet (REQUEST-HEAD) cu informaţii despre cerere şi despre
clientul care execută cererea, codificat;
c) corpul cererii-documentul
Cele mai utilizate comenzi http (metode) sunt:
-get: se solicită server-ului să utilizeze resursa dată de url-ul din cerere
pentru a prelucra informaţiile transmise în corpul cererii;
-put: se solicită server-ului să utilizeze informaţiile transmise în corpul
cererii drept resursă identificată prin url-ul din cerere.
3. Server-ul primeşte cererea, o interpretează şi emite un răspuns browser-ului,
format din:
-un cod de stare (3 cifre): descrie modul de finalizare a cererii şi o scurtă
descriere a codului;
-un antet cu informaţii despre sursa solicitată;
-un corp referitor la datele care se transferă.

2.Limbajul HTML (Hyper Text Markup Language)


Limbaj de marcare a hipertextului bazat pe descrierea acestuia(formatarea)
prin intermediul unor taguri(etichete).
Nu este un limbaj de programare.
Creat în ’90 de Tim Berners Lee, Daniel Connery, derivat din SGML (’86).
Obs: Documentele html sunt exclusiv de tip text.
Structura unui html:
<html>

4
<head>
<title>
</title>
</head>
<body>
</body>
</html>
În antet este indicat a se specifica titlul+alte informaţii suplimentare
precizate de regula intr-o serie de tag-uri meta.
Meta admite atributele “name”, “content”.

Obs: Un tag este descris în mod standard prin 2 etichete pereche gen
<nume_tag>.....</nume_tag> şi pot avea o sumă de atribute care la rândul lor pot
avea o sumă de valori. Acestea (atribute+valori) fiind specificate eventual în
interiorul primului tag: <nume_tag.........>.......</nume_tag> conform sintaxei
atribut=”valoare”
Corpul documentului(<body>)
Delimitat de <body>....</body> sau dacă se folosesc cadre între
<frameset>......</frameset>.
<body> admite atributele: “background“ =“url”, bgcolor=”culoare”
Obs: ”Culoare” poate fi descrisă în cod hexagesimal RGB din 6 cifre câte 2 pt R
(red- roşu), G (green-verde), B (bleu) cu valori de la 00 (minim) la FF (maxim)
precedate de simbolul “#” (exp: #0000FF -> albastru).
Atributul “Text“ cu valoare text=culoare stabileste culoarea textului.
Similar Link, Vlink, Alink=”culoare” stabileşte culoarea pentru linkuri, linkuri
vizitate sau accesate.
Comentariile html se plasează între <!--text comentariu-> nefiind luate în
considerare de către browser.

Formatarea textului
<font> cu atributele: face = nume font (arial, etc)
size = n (de la 1 la 7)
Obs: Mărimea fontului poate fi specificată atât absolut, cât şi relativ la
dimensiunea curentă a fontului ; prin +/- n se înţelege un font cu +/- n puncte faţă
de cel la care se referă.
Obs 1: Pentru dimensiuni putem folosi puncte tipografice (pts), pixeli (px), em.
2: Fontul implicit este Times, mărime 3, black.
3: Se poate modifica dimensiunea implicită a fontului folosind <basefont
size=5>.

5
Setul de caractere
Se specifica printr-un tag meta, parametrul “charset” al câmpului “content
type” al protocolui http.
Specificarea caracterelor speciale sau care nu au corespondent pe tastatură
se poate face prin:
a) codul numeric asociat precedat de “&#” şi terminat cu “;” gen: &#238;
echivalent cu “î”
b) referinţe speciale, precedate de “&” şi terminat cu “;”: &Acirc;
echivalent cu “â”.
Efecte asupra textului (taguri pereche)
<I> Italic
<U> Subliniat
<B> Bold
<small> mic
<big> mare
<strong> mai mare
<strike> tăiat
<em> emboss=evidenţiat
<code> tip cod</code>
<quote>
<cite>
<Q>
<blockquote>

Indicii exponenţi
1. Sup
2. Sub
<p> CO <sub>2 </sub> </p>
<p> a <sup> 2 </sup> +b <sup> 2 </sup> </p>

Text preformatat
Obs 1: Textul poate fi formatat la nivel de bloc prin <div>….</div>.
Obs 2: Gruparea mai multor elemente dîntr-un bloc şi formatarea acestora la
nivel de caracter se face prin <span>…</span>.

Paragrafe şi antete paragraf


<p>….</p> cu atributele
Align=left|center|right|justify
Title=titlu
Dir=rtl|ltr

6
Lang=limba
Antetele paragraf au gradele de mărime şi diferentiere de la H1…H6.
Obs 3: Saltul la linia urmatoare se face prin <br>…</br>

Liste
1. ordonate
<ol>…</ol>
Atribute:
Type=1|a|A|i
2. neordonate
<ul>…</ul>
Type=disc|circle|square
Obs: O intrare intr-o listă:<li>...</li>
Atribut comun value=”nr” ce specifica valoarea de etichetare a intrării în
listă.

Liste de definiţii
<dl>...</dl>
Între acestea se introduc intrările constituite din termeni în 2 părţi:
<dt>....</dt>inline(element)
<dd>...</dd>element de formatare la nivel de bloc

Hyperlegături
Un hyperlink are 2 puncte de capăt numite ancore (sursă, destinaţie). Sunt
prezente doar în <body>.
Elementul “anchor”(A)
Atribute:
href=”url”
id sau nume=”text” sau şir de caractere

Tipuri de hyperlink-uri:

a) externă(alt document)

Exp: <A href=”url.legatura externa”>catre această resursă</A>

b) internă (locaţie din pagina curentă)

Exp: <A name=”nume_ancora”>.......</A>


<A href=”#nume_ancora”>către x</A>

7
c) executabilă – similar cu b) doar că în loc de http se specifică protocolul
de acces al resursei şi adresa absolută
Exp:<A href= file://c:/index.html> către index.html din c:/adresa
</A>
<A href= ftp://go.ro/..........

Proprietăţi pentru link-uri


Stabilirea unei locaţii de referinţă cu atributul “base”.
Obs: base se plasează în <head>
<base href=www.ub.ro>univ.bc.

Culori
-link-albastru
-vlink-link-uri vizitate(mov)
-alink-legătură activă
Lang : Pentru stabilirea limbii <lang>
Charset : set de caractere
Title : plasat în A, face ca textul specificat să apara ca etichetă la “mouse over“.
Imagini la Ancore
Pentru a se realiza un link pe o imagine folosim în locul textului uzual dintre
“ancore“ un element “image“ caruia ii precizam sursa(src = locaţia).

Exp:<A name = ”.....” title=”click pe poza”><img src=”imagine/poza.jpg”></A>

Fereastra de afişare
Implicit noua pagină accesată se deschide într-o fereastră nouă.
Gestiunea ferestrei de afisare se face prin specificarea unei valori a elementului
“target“.
Valorile pentru target pot fi:
blank : fereastra noua
parent : fereastra parinte
top : în fereastra cea mai sus
self
Obs 1: Un alt atribut al elementului “img“ este alt(“alternate”) – se afişează un
text în locul imaginii.
Exp: <img src=”imagini/poza-BMW.jpg alt=”poza cu un BMW”>

Obs 2: atributele “lang“ şi “dir“ ale lui “img“ controlează limba şi direcţia
textului.

8
Aliniere text - imagine
“Align“ cu valorile: “top“,“middle“,“bottom“.
Dacă textul este mai amplu acesta se poate alinia în raport cu imaginea prin
specificarea pentru “align“ a valorii “right/left“.
Obs: Controlul dimensiunilor imaginii se face specificand valoarea uzual în
pixeli pentru “hight“ şi “witgh“ (200).
Chenarul unei imagini se insereaza folosind atributul “border“.
Distantele pe orizontala/verticala pentru imagini şi text se stabilesc prin
atributele “hspace” şi “vspace”.
Controlul intreruperii textului şi revenirea la marginea din stanga ecranului
după imaginea grafica se foloseste atributul “clear“ al elementului “br“ cu
valorile right, left, all.

Sunete
Includerea unui sunet se face prin definirea unui link catre fişierul ce-l conţine.
Obs: Dacă se includ fişiere mari, încărcarea va fi lentă.
Tipuri de fişiere de sunet:
MIDI: suportate direct de browser fără a fi necesar un plug-in.
WAU: suportate direct de mai multe browsere.
AU: calitate mai slabă a sunetului.
AIF: dimensiuni mari
MP3 – MPEG : fişiere comprimate, calitate bună, dimensiune mică
MP4: necesar un plug-in.
RA, RPM, PPM: compresie mai bună decât MP3.
SWA: compresie 176:1, transmisia se face pe şiruri de date ce permite
redarea chiar inainte ca file-ul să se încarce complet.
Exp:<A href= “I_Have_A_Dream.mid”>Ascultă ABBA</A>
Un sunet de fond poate fi integrat. Putem folosi “bgsound“=url (doar IE)
Atribute “bgsound“ :
-src
-loop
-volume

Secvenţe video
-MPEG- forma oficială de compresie video
-WOW- similar cu AVI
Obs: Similar cu “bgsound” se poate folosi în cadrul “img” atributul djnsrc=url

9
Elementul “Object”
Înglobează orice element multimedia fiind folosit în asociere cu elementul
“param”(parametru).
Exp: <object data=”8 miles.avi” type=”video/msvideo” height=”150”
wight=”150”>
<param value=”autostart”>
</object>
“Applet”- aplicaţii de mici dimensiuni scrise în java.
Atribute:
codebase
code= sir de caractere
Name=”nume”

Tabele
Obs: Deşi actualmente rar folosită, datorită succesului css, formatarea paginilor
cu ajutorul tabelelor oferă un control strict al aspectului. Tabelele trebuie sa fie
capabile să-şi modifice dinamic dimensiunile pentru a se adapta la dimensiunea
curentă a ferestrei şi la mărimea fonturilor.

Atribute
-summary= sir de caractere – nivelul şi structura tabelelor
-align=left/ center/ right – specifica alinierea tabelului în document.
-width
-height
-border
-cols=număr coloane
-cell spacing=specifică spaţiul dintre celule cat şi dintre celule şi margine
tabel;
-cell padding=specifică spaţiul dintre chenarul celulei şi conţinutul ei;
O linie orizontală de tabel se introduce prin <tr>conţinut linie </tr>
Dacă linia descrie antetul tabelului atunci <tr>...</tr> se înlocuieşte cu
<th>.....</th>.
Datele din interiorul celulelor se introduc folosind <td>...</td>.
Nr.crt Nume şi prenume Varsta
1 ...... 28
2 ....... 34
3 ......... 43

Titlul unui tabel

10
A nu se confunda cu antetul. Se specifică prin <caption> principalul atribut fiind
align=bottom/ top/ left/ right.
<table>
<caption align=”bottom”>
<p>titlu tabel plasat jos</p>
</caption>...
....</table>

Grupare linii coloane


Gruparea coloanelor:”colgroup”
Atribute:
Span- număr de coloane în grup
Width- impune o laţime unică pentru coloanele grupului
Align- tip de aliniere unic pentru coloanele grupului
Obs: pentru a obţine proprietăţi diferite ale coloanei unui grup se utilizează
elementul col.
<table cellspacing=10>
<col group>
<col width=30% align=”middle”>
<col align=”right”>
</col group>

<tr>
<td Prima coloana text aliniat la stanga>
<valign=”middle”>
<td coloana a doua text centrat>
<valign=”bottom”>coloana a treia text aliniat dreapta jos
</table>

Dezvoltarea automata atunci cand se ajunge la margine sau la zona de


chenar se obţine cu atributul “nowrap”.
Se obţine astfel celule sau coloane de laţime cat de mari.

Celula 11 Celula 12

Celula 21 Celula 22

11
<tr>
<td>celula11</td>
<td>celula12</td>
</tr>
<tr>
<td>celula21</td>
<td newrop>.........>td>
<td>celula22</td.
</tr>

Culoarea de fundal se stabileste prin “bgcolor“ asociat lui <table> sau <tr>
sau <th> sau <td>.

Gruparea celulei
Pentru extinderea unei celule asupra celor situate la dreapta ei(pe linii) sau
extinderea catre dedesupt (pe coloane).
Celulele vide se obţin prin <td>...</td>, iar afisarea unui chenar pentru
celulele vide se introduce “&nbsp“ sau <br>.

Vizibilitatea chenarului între celule/tabel


Atributul “frame”

Valoare explicaţie
void fărăchenar

box chenar pentru intregul tabel


border
above linie de chenar pe latura superioara

below latura inferioara

hsides (horizontal) latura superioara+inferioara

vsides (vertical) chenar laturi stanga-dreapta

lhs stanga

12
rhs dreapta

Atributul “rules“ al elementului table permite definirea vizibilităţii


chenarului tabelului.

Valoare Explicaţie
name font chenar

rows linii de chenar între randurile tabelului

cols linii de chenar între coloanele tabelului

all chenar complet în jurul celulelor

group chenar complet în jurul unor grupuri de


celule specificate prin col group +head,
tbody şi tfoot
rowspan=”n”sau rowspan=”n” ”n”= număr de coloane/linii ce se
grupează

Formatare tabel prin împărţire în blocuri


Aceste blocuri pot fi formatate separat; se foloseste th, tfoot pentru definirea
unui bloc dintr-o singură linie pentru antet (header), respectiv subsol (footer) iar
tbody pentru definirea unui bloc ce conţine mai multe linii interioare tabelului
dat.

Imagini hărţi
A. Mapare imagine
Imaginea este împărţită într-o sumă de zone active = link-uri către resurse
web/ locale.
Imaginea hartă se creează direct pe calculatorul client (acesta determină
coordonatele zonelor şi url-urile asociate), sau pe server.
Imaginea ce va fi mapată trebuie să existe.
Aceasta e divizată în zone active după care se creează elementul ce va
conţine harta, inclusiv atributele acestuia.
Imagine hartă client site:

13
1. Alegere imagine
2. construcţie hartă în interiorul unui bloc definit de <map>...</map> un atribut
obligatoriu pentru map este name cu valoare=nume hartă sau id
3. divizarea harţii se realizeze cu elementul elia
4. includerea imaginii în codul html:imaginea căruia i se precizează src(url
imag.harta), map=”#nume harta”
Obs: dacă harta se află într-o altă pagină web, usemap va primi= pag cu
harta.html#nume harta pag cu html/#nume harta

A. hartă server side


1. definirea zonelor active şi a url-urilor asociate se stochează într-un fişier cu
extensia .map ce conţine instrucţiuni gen:
-default index.htm
-rect
-poly
-circle
2. fişierul hartă numeharta.map e stocat pe server în folderul /map.
/Map nu este de tip html, trebuie declarat un fişier de configurare gen
image.map.conf care se găseşte în rădăcina serverului, gestiunea imaginii hartă
făcându-se prin intermediul unui program cgi instalat.
3. funcţionarea imaginii hartă
Se foloseste atributul ismap al elementului image. Acesta indică browser-
ului că se află în zona unei imagini hartă. Browser-ul recuperează coordonatele
zonelor mapate şi lansează programul care se află în fişierul cgi-bin/imagemaper.
Acesta deschide la rândul său imagemap.com şi găseşte adresele reale din
numeharta.map.

B. client side – definire zone active


Atributele elementului “area“:
-shape= rect/circle/poly/default pentru restul imaginii care nu e acoperită
de zonele de tipurile anterioare.
-href= defineste o zonă care nu e activă în cadrul unei imagini hartă.
-out= text alternativ
-title= text descriptiv tip etichetă
-target=nume fereastră browser în care va fi afişat elementul apelat prin
link-ul ataşat zonei.
-coords=coordonatele zonei în funcţie de forma ei exprimate în pixeli.
Obs: dacă se suprapun mai multe zone uzual browser-ul activează link-ul primei
zone definite.

14
Machetarea paginii prin ferestre
Machetarea presupune împărţirea paginii în zone cu o anumită individualitate gen
zone de navigare, zone de afişare conţinut etc. Folosind ferestre (frame-uri) şi
cadre, un ecran poate fi divizat în mai multe zone (subferestre) în care se pot
încărca html-uri diferite. Metoda uzuală presupune machetarea prin intermediul
CSS. Pentru pagini mici însă sau “fără pretenţii” nu e necesar iar machetarea
paginii se poate face folosind chiar tabele.

Elemente:
- frameset, frame, iframe, noframe
Obs 1: există două categorii de ferestre:
- inline frame (iframe): se comportă ca un bloc de elemente într-o pagină.
- frame: care se comportă după propriile reguli de aşezare ocupând întreaga
suprafaţă a paginii.
Obs 2: structura unui document în ferestre e diferită de cea a unui document
“normal” prin faptul că <body> se înlocuieşte cu <frameset>

<head>......</head>
<frameset>
<frame>definire frame1</frame>
.
.
<frame>definire frame n</frame>
</frameset>
Obs 3: dacă browser-ul nu afiseaza frame-uri se poate pune un text alternativ
deviind în interiorul <noframe> text alternativ</noframe>
Obs 4: definirea ferstrelor se face din aproape în aproape prin împărţirea ferestrei
iniţiale în linii şi coloane folosind atributele cols şi rows ale lui “frameset“.
Aceste atribute au o listă de valori (pentru fiecare fereastra o valoare)
separate prin virgulă. Valorile pot fi exprimate în pixeli sau în procente din
dimensiunea ferestrei de afisare.
Caracterul steluţă „*” indică spaţiul rămas disponibil.
Obs 5: „n*” înseamnă spaţiul disponibil împărţit în n părţi.
Exp:
<frameset cols=”100,10%,*”>
</frameset>

<frameset rows=”20%,3*,100”>
<frameset cols=”30%,*”>
<frameset rows=”150,*”></frameset>

15
</frameset>

Frame:
Atribute:
-name=şir de caractere
-src=url
-noresize=cadrul nu poate fi modificat prin drag and drop.
-scrolling=auto/yes/no=specifica modul de defilare a informaţiilor din
cadru.
-bordercolor=culoare chenar(inclusiv pentru frameset)
-border=dimensiune chenar(doar pentru frameset)
Obs 6: pentru chenar invizibil se setează frameborder=no
-marginheight şi marginwidht=setează distanţele de la marginile unei
ferestre la conţinutul acesteia.
“Iframe“
-pentru inserarea de ferestre „inline”
-pot fi manipulate independent în interiorul unei pagini
-are aceleasi atribute ca şi frame plus: weight, height, align, hspace
Formulare
-folosite pentru a crea pagini web interactive
-un formular conţine o suma de controale (butoane, câmpuri, etc) plasate
între <form> şi </form>
-procesarea informaţiei transmise prîntr-un formular e determinată de catre
atributul action cu valoarea:
a) url-ul unui script aflat pe un server web ce prelucreaza datele unui
formular şi intoarce un raspuns.
b) o adresă de mail-metoda folosită pentru expediere. Metoda poate avea
valorile:
-get: caz în care datele din formular sunt adăugate la url-ul indicat de
action.
-post: datele sunt expediate separat fiind permise cantităţi mai mari.

Construcţia formularelor
Obs: Tipul câmpului este precizat prin type. La expediere se transmit către
servere perechi de forma <nume element din form>=<valoare>, date definite prin
atributele “name”, şi “value” ale lui input.

Valori ale atributului “type“:


- button- buton de comandă
- reset, submit- buton de resetare, expediere

16
- checkbox- casetă de validare
- radio- buton radio
- file- fişier
- hidden- câmp ascuns
- image- imagine care înlocuieşte un buton
- password- parolă
- text- casetă text
Obs: câmpul de tip text poate avea setat atributul “read only”. Atributele size şi
maxlength indică lăţimea câmpului, respectiv numărul maxim de caractere
admise.
Câmpurile text se numesc “textarea“.
Elementul textarea are atributele:
- name/ id
- rows - specifică numărul de linii
- cols- specifică numărul de caractere ce vor fi afişate într-o linie
- wrap – off - determină întreruperea cuvântului în marginea dreaptă
a câmpului dacă se apasă enter.
– hard - cuvintele sunt întrerupte automat la dreapta câmpului;
caracterele de sfârşit de linie sunt incluse în textul transmis;
– soft - caracterele nu sunt incluse la expediţie.

Exp :
Login :

Nume :

Prenume :

Parola :

Submit Reset

<form method = ”pass” action=”mail”>


<p>Login:</p>
Nume:<input type=”text” name=”nume”/><br>
Prenume:<input type=”text” name=”prenume”/><br>
Parola: <input type=”password” name=”parola””/><br>
<input type=”submit” value=”submit1”/>

17
<input type=”reset” value=”reset1”/>
</font>
Obs: value pentru checkbox reprezintă eticheta ce urmează butonului.
Obs: dacă vrem ca butonul de validare să fie iniţiat (selectat) se inserează
atributul checked.
Alte atribute: align- stabileşte alinierea în cadrul câmpului, tabindex- stabileşte
ordinea după care butonul ajunge să fie selectat (primeşte focusul) la apăsarea
tastei tab.
Liste de derulare (liste de selecţie)
SELECT cu atributele:
- name
- size: număr de opţiuni vizibile în fereastra de derulare
- multiple: dacă e specificat, lista permite selecţia multipla a unor opţiuni
Opţiunile din care e constituit meniul se introduc folosind elementul option cu
atributele:
-selected (iniţial se declară)
-value= sir de caractere
-label= denumire mai scurtă pentru conţinut
Obs 1: dacă size nu e specificat implicit e 1.
Exp :
<select size=3 name=”imprimante”>
<option value=”canon”>Canon BJC2000</option>
<option value=”hp” selected>hp LawSet1000</option>
<option>hp Inkjet</option>
<option>Xerox</option>
<option>…..</option>
</selected>
Obs 2: pentru a crea subliste de meniuri se foloseste optionlist.

18
CSS
Cascading Style Sheets- stiluri de formatare în cascadă

Obs: Pentru a crea pagini cu un design evoluat, html ofera puţine elemente de
formatare.
CSS ca şi cadru de lucru s-a folosit din ’94, în ’96 devenind recomandare
w3c(wwwc).
Avantajele folosirii css:
1. Dă posibilitatea definirii de la început a tuturor formatărilor necesare (cum ar
fi: fonturi, culori, aliniere, spaţiere etc.)
2. Economie de timp : dacă dorim ca heading (H1) să fie rosu definim un stil
pentru acesta pe care îl declarăm o singură dată nemaifiind astfel nevoie de a
rescrie codul html.
3. Sunt uşor de modificat. De exemplu, pentru a schimba culoarea paragrafelor
H1 din roşu în verde, nu vom parcurge tot documentul, înlocuind culoarea, ci
vom modifica doar stilul.
4. Stilurile sunt aplicate de browser în mod unitar (cum documentele html sunt
foarte stufoase se poate greşi uşor).
5. Stilurile pot fi aplicate mai multe pagini web, iar modificarea stilurilor va fi
automat reflectată în toate paginile care le utilizează.
HTML nu impune un anumit limbaj de definire a stilurilor. Dacă se foloseşte
CSS se va introduce în antet o declaraţie gen: <meta http-equiv=”content-type-
style” content=”text/css”>

Specificarea stilurilor
a) Stiluri inline-folosite prin intermediul atributului style=”sir de caractere”
aplicat elementelor html ce se “stilează“.
Exp : <p style=”text-align:center; color:green”>Am aplicat un stil cu verde
pentru p, centrat. Lista atributelor ce se stilează este separată prin punct şi
virgulă, iar separarea atribut- valoare se face prin intermediul “:”.
Specificarea unui stil inline e utilă când dorim formatarea individuală a unui
element.
b) Stiluri dedicate = specificarea stilurilor în antet.
În antet pot să apară oricât de multe elemente style folosite pentru a
specifica stiluri pentru:

19
-toate apariţiile unui anumit element html în documentul respectiv;
-toate apariţiile unui element dintr-o clasă. Clasa corespunzătoare unui
element html se specifică prin atributul “class”.
-apariţiile individuale ale unui anumit element. Identificarea apariţiilor
unui element cărora li se aplică stilul se realizează prin intermediul atributului
“id”.

Exp1: toate paragrafele = cu Arial, 12 pt, aliniat stânga, italic


<head>
<style type=”text/CSS”>
P
{font:12 Arial; font-style:italic; text-align:left;
}
</style>
Exp2 : Pentru ca toate paragrafele din clasa “subtitlu” să fie scrise centrat şi
îngroşat putem defini:
<style type=”text/CSS”>
P.subtitlu
{font-weight:bold; text-align:center
}
</style>
Ca urmare tuturor paragrafelor pentru care atributul class are valoare
“subtitlu” li se va aplica acest stil.
Exp3: Dacă dorim ca anumite paragrafe să fie aliniate la dreapta şi scrise cu 10
definim:
<style type=”text/CSS”>
#Exceptie
{font-size=10 pt; text-align:right;
}
</style>
Obs: Utilizând stilurile de mai sus putem scrie:
<p>Paragraf obisnuit
<p class=subtitle>Acesta este un subtitle
<p id=excepţie>Aceasta este o excepţie

<p style=”text-align: center; color : green”> Am aplicat un stil verde


pentru p şi centrat.
Acum p va afisa un text verde, centrat (suprascris), dar Italic, 12, Arial
(păstrat, moştenit).
c) Specificarea stilurilor în mod extern (CSS extern)

20
Exp:
<link type=”text/CSS” rel=”stylesheet” href=”UnStilCSS.css” title=”de
preferat”>

Obs: Pentru a specifica fişierele în care sunt definite stilurile se utilizează în


antetul html elementul link. Prin type se specifică limbajul de descriere a
stilurilor (text/CSS), iar prin href se indică adresa fişierului CSS extern.
În cazul în care nu definim stiluri de formatare alternative atributul rel va
primi valoarea “stylesheet”.

Clase de stiluri
O clasă de stiluri permite definirea unui stil general aplicabil unui element
sau unui grup de elemente.
Referirea unei clase se poate face în mai multe locuri în cadrul aceleiaşi
pagini sau în pagini diferite.
Definim clasa: t_alb_gri

<style>
.t_alb_gri
{text-align:center;color:white;background:gray;width:300px;
}
</style>
Apelul:
<body>
<p class=”t_alb_gri”>Paragraf cu stilul “t_alb_gri”</p>
<H2 class=”t_alb_gri”>Heading 2 tip t_alb_gri”</H2>
P class=”t_alb_gri”>Revin la formatarea t_alb_gri</p>
Obs: Head-erele au un format propriu relative la mărimea fondului, astfel
mărimea textului afişat cu H2 rămâne cea specifică acestuia.
Obs: Dacă dorim ca o clasă să fie aplicabilă numai pentru anumite elemente, în
construcţia numelui clasei va apărea numele elementului în faţă:

<style>
p.t_alb_gri {...}
</style>

Dacă setăm
<p class=”t_alb_gri”>Paragraf cu stilul t_alb_gri</p>
<H2 class=”t_alb_gri”>...

21
<p class=”t_alb_gri”>…
Observăm că stilul nu se aplică lui H2.
Obs: Dacă dorim să aplicăm o clasă de stil mai multor elemente vom trece
numele acestor elemente după numele clasei separate prin virgulă cât şi faţă de
aceasta.
În acest caz nu mai e necesară aplicarea stilului prin “class”.
Exp:
.t_alb_gri;
p, h2
{text-align:center; color:white; background:gray;….}
sau
<style>
p.t_alb_gri, h2 {…………}
</style>

<body>
<p>Paragraf cu stilul t_alb_gri</p>
<h2>Heading2 cu stilul t_alb_gri</h2>
</body>
Obs: Pentru declararea p.t_alb_gri, h2, pentru p. trebuie în continuare să se
apeleze stilul prin class, în caz contrar va apare fără stil.
Obs: Dacă dorim ca mai multe clase să descrie acelasi stil (mai rar folosit, se pot
însă crea stiluri în baza acestora), se separă numele claselor prin virgulă:
<style>
.t_alb_gri,.cls2,.cls3, p
{…………
}
</style>

Pseudo clasa. Pseudo element


Pseudo clasele sunt utilizate pentru personalizarea link-urilor, text, sau
imagini. Se definesc în <head> sau extern.
Numele ancorei e separat de atribut prin :
<style>
a : link
{/*Cum va arata un link normal
font-size :15 pt ; text-decoration :none ; boreder-width :2px ; border-
color :black ; padding:5 px; margin-top:10px;}
a : visited
{text-decoration;none; }

22
a : hover
{text-decoration:none; text-style:Italic;}
a : focus
{color:#33333}
a : click
{color:white; background:black;}
Pentru ca legăturile să utilizeze un anumit stil se pot folosi:
1.a : link.clasa{......}
(sau a : hover etc.) cu
<a class=”clasa” href=” “>......</a>
2.a : link#nume_id{…} cu
<a id=”numeid” href=” “ >….</a>
3.a.clasa1: link {……}
<a class=”clasa1” href=” “>….</a>

Pseudo elemente – similare pseudo clasei A:


-first-letter – se aplica primei litere a unui element
-first-line – se aplica primei linii
-before şi after (se folosesc impreuna cu content, permit clasarea de
conţinut după sau inaintea unui element)

Exp:
1. p : first-letter
{font-size:3 em;
}
2. p : first-line
{font-style:Arial;
Text-transform:uppercase
}
Stiluri dedicate
Pentru a crea un stil dedicate folosim o sintaxa gen:
<style>
Inclinat{text-style:Italic}
</style>
Elementul în care dorim utilizarea locală a acestui stil va primi atributul id
cu valoarea egală cu numele stilului.
Exp:
<p id=”italic”>Linie cu text inclinat</p>
Dacă dorim să aplicam stilul dedicat doar pentru anumite elemente atunci
vom trece numele elementului în faţa numelui stilului:

23
Exp:
1. <style>h4#inclinat {font-style :Italic}
</style>
2. <style>
<h4 id= ”italic”>Text cu h4

Class sau id
Id-urile se folosesc o singura dată într-un html(o convenţie de fapt) în timp
ce class se poate folosi de mai multe ori.
În general id-urile se folosesc pentru structurile principale ale paginii
(header, footer, conţinutul principal).
Selectorii de tip class se folosesc pentru elementele ce apar de mai multe
ori în cadrul paginii.
Obs: Id-urile(clase declarate cu #) vor fi intotdeauna prioritare faţă de selectorii
de tip class.(.)
Exp:
<style>
#aldin
{text-transform:uppercase}
.mic
{text-transform:
</style>
.
.
<p id=”aldin”>Text cu litere mari</p>
<p class=”mic”>Text cu litere mici</p>
<p id=”aldin” class=”mic”>Text cu litere mici şi mari combinate</p>

Funcţionarea stilurilor în cascada


Admiţând că pentru un element sunt definite mai multe stiluri ce intră în conflict
pentru anumite atribute acestea acţioneaza cu priorităţile:
1. Stilurile definite inline;
2. Stilurile definite între marcaje <style>..<.style> - are prioritate stilul definit
ultimul;
3. Stilurile definite prin fişiere(extern) – are prioritate stilul cel mai recent.
4. Stilul predefinit pentru documente dacă nu sunt definite stiluri.
5. Dacă un atribut conţine după valoare precizarea “! Important”, atunci valoarea
acestuia nu poate fi suprascrisă având prioritate maximă.

24
Atribute pentru stiluri

Atribute pentru blocurile de text

Atribute Valori Semnificaţie

Margin-left Auto|număr|procent
-right
-top
-bottom
Padding-left auto|număr|procent
-right
-top Padding-se referă la distanţa dintre
-bottom bloc şi bordura sa, iar distanţa dintre
padding Thin | mediu | thick bordura şi celălalt element este
| margi-
Număr | ne.
Unitate de măsură|
Border left | width
right | width
top | width
bottom | width
border | width

border style none | dootet |


dashed |
solid | double |
outset |
inset | groope |
ridhe
Border color-width- auto | procent | culoarea chenarului
height numar |
-float unitate de masura |
none
| left | right | post |

25
Border top + width, Right | bottom | left Chenarul superior
Style, color |
Border |

Layer

Obs: Dhtml permite controlul asupra poziţiei şi comportamentului elementelor.


Poziţionarea constă în plasarea unui element (pagina=o structura de
blocuri) prin atribuirea unor coordinate x,y, cat şi a unei elevaţii z ce permite
obţinerea de efecte prin suprapunere.
Un bloc=layer. Acestea se pot ascunde, suprapune ori deplasa, există
layere imbricate.
Tranziţii:sunt efecte speciale rezultate prin modificarea afisarii unui
element. Filtrele sunt efecte ce se aplica asupra unor elemente.(exp:text umbrit)
Pentru definirea layer-elor pot fi folosite 2 procedee:
*sintaxa CSS +Sintaxa Layer
Blocurile de tip layer pot fi definite inline sau cu ajutorul foilor de stil.

Atribute pentru layer

Atribute Valoare Semnificaţie

above şi bellow -aboce Funţioneaza în sintaxa layer nu


-bellow şi în sintaxa CSS
Sintaxa:
above=<nume_layer>

background- -rosu Stabileşte culoarea de fundal a


color -green layer-ului
-blue
-rgb(r%, g%, b%)

26
background- -url
image
clip -rect (top, right, bottom, Determină decuparea dintr-un layer
left) a unei suprafeţe vizibile

height Inălţimea layer-ului


left -unitate de masura Distanţă de la marginea din stânga
over-flow -none Permit vizualizarea întregului layer
-clip dacă dimensiunile lui depăşesc
-scrrol valorile impuse prin height
şi midth
page x, page y Distanţă în pixeli dintre coltul
stânga sus layer, stânga sus pag.
(sintaxa layer, nu CSS)
position -absolute (layer poziţionat Poziţia layer-ului
absolut în raport cu body
fiind scos din flow-ul
paginii)
-relative (layer poziţionat
faţă de poziţia curentă în
blocul în care este inclus)
-static (poziţia implicită)
src(sursa) -url (sintaxa layer) sursa
top -număr şi unitate de măsură Distanţă între marginea
-procente superioară a layer-ului şi blocul în
care e inclus
visibility -visible
-inhabbit
-hiden
width -număr lăţimea
-unitate de masură
-procent
z-index -număr natural

Layere definite prin sintaxa CSS:

27
-fiecare element web suportă un oniect stil (stilare) folosit în manipularea
aspectului şi a acţiunii sale
-acest obiect caruia i se atribuie un id pentru a fi accesat e poziţionat între
<div>.....
</div>(bloc) şi <span>...</span>(inline).
Obs: obiectele stil pot fi accesate prin scripturi gen:
<span id=”text”
onMouseover=”text.style.color=’red’”
onMouseover=”text.style.color=’green’”>Mută cursorul aici
</span>
Permit adaugarea unor texte speciale, textelor sau imaginilor
Apelarea unui filtru ca element de stil se face conform sintaxei
<nume_element.style=”filter”:<nume_filtru>

Filtrul Argumente Semnificaţie Exemplu

alpha -opacity Alpha(opacity=20,


-finishopacity finishopacity=100, style=1,
-style startx=0, starty=0,
-startx finishx=80, finishy=100)
-starty
-finishx
-finishy
blur -add Imagine înceţoşată Blur(add=true, direction=90,
-direction strength=6)
-strength
chroma -color Culoare ce devine Chroma(color=#FF0000)
transparentă
fliph-o Oglindirea imaginii Fliph( )
pe orizontală
fliph-v Oglindirea pe verticală

glove -color
-strength
gray Imagine în tonuri de gri

invert negative

28
shadow -color umbra
-direction
drop- -color Dropshadow(color=red,
shadow -offx offx=5, offy=5, positive=
-offy true)
-positive
xray Imagine alb-negru

wave -add Wave(add=true, qverq=2,


-qverq light strength=3, phase=
-light strength 0)
-phase

Obs: Comportamentul unui obiect se poate manifesta la declanşarea unui anumit


eveniment.
Onabort – părăsirea paginii
Onblur – obiectul este părăsit
Onchange – se schimbă valoarea unui obiect
Onclick
Ondblclick
Onfocus – activitatea unui obiect
Onkeydown – apasă o tastă
Onkeypress
Onkeyup
Onload
Onmouse-down
-move
-over
-out
Onreset
Onsubmit-transmit datele
Onselect
Onunload

Layout-ul paginii: poziţionare


Proprietatea position poate avea valoarile:
-static-default:elementele sunt în poziţia lor normala
-relative – similar cu static, dar elementul poate fi scos din
poziţia să originala folosind top, right, bottom, left.

29
-absolute – scoate un element din flow-ul paginii şi il plaseaza
intr-o “lume proprie”. Oriunde în pagina sau în bloc folosin aceleasi valori(top,
bottom, left)
-fixed – similar cu absolute va poziţiona elementul în raport
cu fereastra browser-ului prin opoziţie cu afisarea în cadrul paginii
Astfel elementele fixe vor “sta” pe ecran chair dacă pagina este
scrollată.
Exp:
Layout folosind poziţia absolută
#navigare
<style>
{position:absolue; top:0; left:0; width:10 em;
}
</style>
#conţinut
{margin-left:10 em;}

JAVA SCRIPT

SCRIPT = Program ce poate fi inclus sau asociat într-un html. Se execută


pe calculatorul utilizatorului la producerea unui eveniment.
Tipuri :
a) Scripturi ce se execută o singură dată (la încărcarea html), incluse în
acesta prin elementul SCRIPT.
b) Scripturi ce se execută ori de cate ori se produce un anumit eveniment
Html nu impune un anumit limbaj de descriere a scripturilor. Acesta
trebuie definit explicit:
*specificand în antet – <meta http-equiv=:Script-content-
type”content=”tip_l_
scripting”></meta>
Exp:
a)”text/tcl”
b)”text/vbscript”
c)”text/Javascript”
*specificand local gen: <script type=”text/java script”>
{conţinutul scriptului}
</script>

Diferente java/java script

30
JAVA JAVA SCRIPT
-codul este inclus într-un document -codul este compilat şi stocat într-un fişier
html distinct
-un script e interpretat de browser pe -un applet e compilat, încărcat şi executat
Calculatorul client Pe calculatorul user-ului
-putem crea un script cu un editor -un applet se creează folosind un mediu de
-variabilele nu trebuiesc declarate dezvoltare JAVA
-utilizatorii îşi pot crea funcţii proprii -variabilele trebuiesc declarate şi trebuie să
-scripturile sunt predominant orientate aparţină (să fie de tipul) unei clase JAVA
Spre eveniment -funcţiile sunt metode ale obiectelor
-controlul erorilor este sumar -applet-urile pot rula independent de
-majoritatea browser-elor accepta JS eveniment
-control strict

Variante JS:
1.JS de baza – conţine elemente generale de descriere a script-urilor
2.Client side JS – o extensie a nucleului JS=cea mai utilizată
3.Server side – permite descrierea de script-uri ce se execută pe server
Obs: Deşi nu este obligatoriu există practica plasării script-urilor între <!-- şi//-->
Pentru browser-ele care nu suportă scripting.
Exp:
<script type=”text/javascript”>
<!—document.write(“Salut”)
//- - >
</script>
Obs: Atributul Language e opţional, dar recomandat.
Exp:
(JS extern)
<script language =”JavaScript” src=”JS_extern.js>
</script>
Notă :Cele mai utilizate unelte pentru crearea JS :
-JQuerry
-MooTools
Obs: JS=case sensitive
Între obiecte (JS ca limbaj conţine un set de instrumente care prin
combinaţie cu obiecte şi proprietăţi formeaza un script. Există o anumită ierarhie

31
ce reflectă structura unui document html denumită modelul obiect- document
(document object model).
Modelul obiect-document (dom! nu este unic) descrie structura unui
documentului reprezentat prin obiecte şi proprietăţi.
JS conţine un set de obiecte predefinite ce pot interacţiona cu diverse
componente html.

DOM

WINDOW LAYER

LINK

FRAME IMAGE

DOCUMENT ANCHORE

LOCATION APPLET

PLUGIN TEXT AREA


HISTORY
TEXT
FORM
RADI
O
NAVIGATOR SELECT

PLUGIN

MIME TYPE

32
Obs: Un tip special de obiect este cookie. Conţine informaţii despre client ce pot
fi accesate de către server.
Proprietăţile JS sunt folosite pentru a seta sau a regăsi valoarea obiectelor.
Modul de acţiune al unui obiect e dictat de asocierea unei valori anumitor
proprietăţi.
Exp:
Document.LinkColor=”#FF0000”
Metodele unui obiect sunt funcţiile asociate obiectelor conform sintaxei:
identificator_obiect. identificator_metoda()

Exp:
string.touppercase( )

Funcţii JAVASCRIPT

Sintaxa: function<identificator_funcţie>(arg1, arg2...)


{...corp funcţie
}

Exp1:
function putere(x, y)
{total=1ş
for(j=0; j<y; j++)
total *=x (total=total*x)
return total
}
Obs: În 95% din cazuri sintaxa C, C++ rămâne valabilă pentru JS.

Exp2:
Legătura JS- html
<html>
<head>
<script language=”JavaScript”>
Function apasa( )
{alert (“Mesaj eroare”);
}
</script>

33
<body>
.
.
<form>
<input type=”Buton” name=”Buton1” value=”Apasa aici”
onclick=”Apasa”()>
</form>

<html>
<head>
<meta http-equiv=”content-script-type” content=”text/javascript”/>
<script>
< !- -
function calcul(f)
{if confirm(”Esti sigur ? ”)
rezultat.value=eval(f.exp.value)
Else
Alert (“Lasam pe altă dată! “)
}
#inchid comentariul- - >
</script>
</head>
<body>
<form>
Introduceti o expresie :&nbsp&nbsp
<input type=”Text” name=”exp”>
</input>
<input type=”button” value=”calc”>onclick=”Calcul (this.form)”>
</input>
</br>
Valoarea expresiei este:
<input type=”Text” name=”rezultat” size=15>
</input>
</form>
</body>
</html>

Exp3:
<script type=”text/javascript”>

34
<!- -
Var name;
Function intreaba( )
{nume=prompt(“Cum te numesti?”)
Salut=alert(“Bine ati venit;”+nume+ ” ! ”)
}
Function pa( )
{alert (”La revedere, ”+nume+” ! ”)
}
//- - >
</script>
<body onload= ”intreaba ( ) ” onunload=”pa( )”>

<script type=…….>
<!- -
Lg=20;
Viteza=2;
Poz=lg;
Mesaj=”Balans”;
Dir=2;
Lg=Mesaj.length-1;
Function Balans( )
{dir= = 2? Poz- = viteza:poz+=viteza;}

Obs: În JS instrucţiunile se clasifică în instrucţiuni primitive şi repetitive.


Instrucţiunile primitive se clasifică în:
-instrucţiunea vidă
-instrucţiunea compusă (tip bloc)
-instrucţiunea expresie:
*poate fi o expresie: z=2*x-3;
*poate fi o atribuire;
*poate fi apelul unei funcţii.
Exp: Utilizarea funcţiei eval pentru evaluarea unor date citite de la tastatură prin
intermediul unei căsuţe de dialog (media aritmetica)
<script language=”JavaScript”>
document.writeln(“se citesc de la tastatura 2 numere x, y/n.. Să se afiseze
media aritmetica ma/n ”);
var x=eval(prompt(“Dati x=”));

35
var y=eval(prompt(“Dati y=”));
var ma=(x+y)/2;
document.write(“Media aritmetica a lui x şi y, ma=”,ma)
</script>

Exp: Se citeşte un număr natural pozitiv. Să se afişeze câte cifre conţine numărul.
X=123
<script...>
document.writeline(“Dati un numar”);
var s=0;
var n=eval(prompt(“n=0”);
var x=n;
if(n>=0)
{do
{n=Math.floor(n/10);
S++;
}
While(n!=)
document.write(“Numarul”, x, “are”, s, “cifre”);
}
Else
document.write(“Numarul”, x, “nu este pozitiv”);
</script>

Funcţii şi apelare
Vom folosi funcţia “culori” pe care o vom apela de mai multe ori cu valori
diferite, dand click pe butoane: rosu, galben, albastru, se va schimba culoarea de
fundal a paginii.

<head>
<script...>
function culori(x)
{document.writeline(“<body bgcolor=”+x+”>”);
document.writeline(“Pagina cu fundal de culori diferite”);
}
</script>
</head>
<body>
<form>

36
Daţi click pe un buton pentru a schimba culoarea de fundal
<input type=”button” onclick=”Culori(‘red’)” value=”Rosu”>
<input type="button" onclick="culori('yellow')" value="galben">
<input type="button" onclick="culori('blue')" value="albastru">
</form>
</body>
</html>

Parametrii funcţiilor
Reamintim ca parametrii aflaţi în partea de declarare a funcţiilor se numesc
formali. Acesţia cat şi parametrii efectivi pot lipsi la apelul funcţiei. Numarul
parametrilor formali trebuie să fie egali ci cei efectivi.
Obs: Excepţia de la această regula face proprietatea “arguments” ce poate fi
utilizată ca un numar diferit de parametrii la apelul funcţiei.
Pentru a determina numarul de parametri din apel utilizăm în cadrul
funcţiei următoarea proprietate “arguments.length”.
Arguments este un masiv(unidimensional) ce are ca primă valoare
arguments[0].
Expresie: vom apela o funcţie numită lista din interiorul unei instrucţiuni
de afisare prin urmatorul apel:
lista(“u”, “Primavara”, “Vara”, “Toamna”, “Iarna”)
La execuţia funcţiei se parcurg parametrii cu arguments.length. Parametrul
“u” de la apel se introduce în funcţie pentru a afisa o listă neordonată.
<head>
<script>
function lista (x)
{document.write
(“<”+x+ “l” type=circle>”)
for(var i=1; i<lista.arguments.length; i++)
document.write(“<li>” +lista.arguments[i]+”</li>”);
document.write(“</”+x+”l>”);
}
</script>
</head>
<body>
<script type=”...”>
Write(lista(“u”, “Primavara”, “Vara”, ”Toamna”, “Iarna”));
</script>
</body>

37
Funcţii şi stiluri

Exp: Stilul pentru campul text.area.


Vom introduce un text într-un camp tip text.area pe care il vom afisa în 3
moduri utilizand stiluri diferite(s1, s2, s3).
Stilurile sunt apelate prin funcţiile f2, f3 şi f4 la onclick pe butoanele s1,
s2, s3.
Obs: Funcţiile f2, f3, f4 utilizează masivul “a” care pentru prima valoare (t=0)
aplică stilul s1, pentru a doua (t=1) aplică stilul s2, iar pentru a treia (t=2) aplică
stilul s3.

<html>
<head>
<title>Funcţii şi stiluri</title>
<style>
.s1{font-family:Arial, Helvetica, sans-serif;
font-size:18px;
color:#006633;
background-color:#91FFC8;
}
.s2{font-family:Georgia,Times New Roman,serif;
font-size:16px;
color:#3333FF;
background-color:#CC0000;
}
.s3{font-family:Arial,Helvetica, sans-serif;
font-size:18px;
color:#3333FF;
background color:#9B9CF0;
}
</style>
<script>
function f1()
{var reg=/ \n /g;
var getElementById=document.formular.ta.value;
var y=getElementById.replace(reg."</br>");
document.getElementById("target")innerHTML=y;
}
var t=0;
var a=New Array("s1","s2","s3");

38
function f2()
{t=0;
document.getElementById("abc")className=a[t];
}

function f3()
{t=1;
document.getElementById("abc")className=a[t];
}

function f4()
{t=2;
document.getElementById("abc")className=a[t];
}

function f()
{document.getElementById("Target")className=document.getElementById("ab
c")className;
}

</script>
</head>
<body>
<table>
<tr>
<td>
<div id=target class=s2>Scrieti un text şi dati click</div>
</td>
</tr>
</table>
<form name=formular>
<text area name=ta class=s1 id=abc>

Spune,inimioara,spune
Ce durere te rapune?
E.Vacarescu
</text area>
</br>

39
Scrieti un text şi dati click
<input type="button" value="Apasati" onclick="f1()">
</br>
Alegeti un stil şi daţi click<input type="button" value="stil1"
onclick="f2()"></br>
Alegeti alt stil şi daţi click<input type="button" value="stil2"
onclick="f3()"></br>
Alegeţi alt stil şi daţi click<input type="button" value="stil3"
onclick="f4()"></br>
Daţi click pentru a aplica stilul<input type="button" value="click"
onclick="f()"></br>
</form>
</body>
</html>

Evenimente şi tratarea lor


Atât evenimentele cât şi tratarea acestora sunt acţiuni pe care utilizatorul le
determină, ele fiind interpretate cu ajutorul funcţiilor JS.
Exp: Mişcare mouse, apăsare tastă, drag and drop, etc.

Clasificarea tratării evenimentelor:


După declansarea acestora în funcţie de diferite elemente gen:
a) tratarea evenimentelor de catre sistem:
-onError
-onLoad
-onUnLoad
b) tratarea evenimentelor de catre un formular:
-onBlur
-onChange
-onFocus
-onReset
-onSubmit
-onSelect
c) tratarea evenimentelor de catre tastatura:
-onKeyDown
-onKeyPress
-onKeyUp
d) tratarea evenimentelor de catre mouse:

40
-onClick
-onDblClick
-onMouseDown
-onMouseMoove
-onMouseUp
-onMouseOver
-onMouseOut
a) Tratarea evenimentelor de catre sistem
Reamintim ca onError este event.handler pentru obiecte image şi window.
Exp1: formular cu un singur buton care il aplic, apeleaza o funcţie ce conţine o
eroare.
<head>
<script type=”JavaScript”>
onError=MesajEroare;
var x=” “;
function MesajEroare(mesaj, url, linie)
{x=”Este o eroare în pagina vizitată! \n Eroare:”+mesaj+ “\n”;
x+=url:+url+”\n”;
x+=”linia:” +linie+ “\n”;
x+= “Dati click pentru a continua!”;
Alert (x);
return true;
}
function f( )
{document.writeln(“Nu sunt vizibila!”);
}
</script>
</head>
<body>
<form>
<input type=”button” value=”Apasati!” onClick=”f( )”;
</form>
</body>

Exp2: onLoad acţionează în urma încărcării documentului a tuturor cadrelor


dîntr-un frameset sau a unei imagini(event.handlear) pentru image layer sau
window.
onLoad=”g( )”;
g( )
{alert (“Mesaj”)

41
}

b)Tratarea evenimentelor de catre un formular


Exp: de funcţie ce transforma un text în majuscule, ce acţioneaza la
onChange.(pierdere focus + modificare conţinut camp)
<script type=”....’>
function majuscule(a)
{a.value=a .value to UpperCase(a);
}
</script>
</head>
<body>
<h4>Introduceti numele şi prenumele</h4>
<form name=’formular”>
Numele:<input type=”text” name=”x” value=” “ size=”30”
onChange=”majuscule(this)”> </br>
Prenumele:<input type=”text” value=” “ size=”30” name=”y”
onChange=”majuscule(this)”>

c) Tratarea evenimentelor de catre tastatura


Exp: Un formular ce permite doar introducerea de caractere diferite de caracterele
spciale utilizand codurile ASCII şi onKeyPress.
<script type=”....”>
function f( )
{if ((event.KeyCode>32 && event.KeyCode<48) || (event.KeyCode>57
&& event.KeyCode<65) || (event.KeyCode>90 && event.KeyCode<97))
event.returnValue=false;
}
</sript>
</head>
<body>
<form onSubmit=”return false;”>
Introduceţi un text care nu conţine caractere: !@’#$%&^* </br>
<textarea rows=2 cels=25 name=”texti” onKeyPress=”f( )”>
</textarea>
</form>
</body>

d)Tratarea evenimentelor de catre mouse


Exp: Afişare coordonate cursor, mouse în mişcare

42
<form name=”formular”>
Coordonatele cursorului </br>
x:<input type=”text” name=”x” value=” “></br>
y:<input type=”text” name=”y” value=” “></br>
</form>
<script type=”.......’>
var InternetExplorer = document.all?true:false
if(!InternetExplorer)
document.captureEvents(Event.MouseMoove);
document.onMouseMove=poziţie;
function pozitie(poz)
{*var x;
var y;
if(!InternetExplorer)
{x=poz.Pagex;
y=poz.Pagey;
}
document.formular.x.value=x;
document.formular.y.value=y;
}
</script>
</body>

Obs: JS avansat: lucrul cu obiecte JS.

43

S-ar putea să vă placă și