Documente Academic
Documente Profesional
Documente Cultură
CAPITOLUL IX
JavaScript [32, 70, 84],
JavaScript este mai simplu decât Java, mai puţin dotat decât acesta, şi
totuşi se bazează pe Java. Este mai apropiat de acesta decât de marcajele
HTML. Dacă Java permite scrierea de aplicaţii de sine stătătoare (stand
alone) sau ″compilate″, JavaScript nu permite acest lucru pe partea de
client. JavaScript permite cunoscătorului HTML să trateze cu secvenţe de
program adecvate, diverse evenimente iniţiate de către utilizator cum ar fi:
efectuarea unui clic cu mouse-ul, ″survolarea″ cu mouse-ul a anumitor zone
ale unei ″hărţi″ afişate, completarea unui formular sau acţionarea unui buton,
conturat pe ecran; organizează ferestre în mai multe cadre, fiecare punctând
spre un document din spaţiul Web. Într-un cuvânt, face răsfoirea unui volum
mare de informaţii mult mai umană pentru utilizator.
Fiind pregătit pentru arhitectura client-server, pe ecranul unde rulează
clientul poate apărea un formular cu felurite câmpuri, unde utilizatorul
precizează diferite informaţii sau alege anumite opţiuni. La efectuarea unui
clic pe butonul de tip submit, răspunsurile utilizatorului pentru acest formular
sunt expediate la server, care le prelucrează.
JavaScript are o sintaxă asemănătoare limbajului C. Prima atenţionare
care trebuie făcută este că, spre deosebire de HTML, de altfel ca şi C++,
JavaScript este case sensitive, adică face distincţia între literele mari şi
cele mici.
Scripturile JavaScript sunt interpretate de browserele Web, care recunosc
JavaScript.
Exemplu de Inserare a unui script JAVA intr-o pagina HTML:
- Se utilizeza marcajul <SCRIPT>, care este o extensie a limbajului Html.
- Language - specifica ce limbaj de scripting este utilizat in scriptul inserat;
- Pus in antetul documentului, scriptul se executa la incarcarea paginii de
catre navigator.
- Document – este un obiect predefinit, defineste caracteristicile
documentului Html
PROGRAMARE HTML, XML
Urmează sursa:
Pentru obiectul Autoturism definit mai sus putem acum instanţia oricate
obiecte de acest tip, sub următoarea formă:
AutoturismA=new auto(“Cielo”,180, 1995)
AutoturismB=new auto(“Dacia”, 120, 2003)
AutoturismC=new auto(“Ford”, 200, 2000)
Putem crea oricâte astfel de obiecte. Instrucţiunile de atribuire de mai sus
seamănă cu cele ale unui constructor din C++. Operatorul new va aloca
resursele (de memorie) necesare pentru întreaga structură de date a
obiectului.
Adăugăm şi o metodă obiectului Autoturism care calculează numărul
de km parcurşi de acesta. Parametrul intern al obiectului afectat de această
funcţie în sensul creşterii sale este Lungime . Rescriem funcţia auto(), ca să
anunţăm şi metoda Parcurs ca membră a acestui obiect:
function auto(sTip, iViteza, iAn)
{ this.Tip = sTip,.
this.Viteza = iViteza;
this. AnFab = iAn:
this.Lungime = 0;
this.Parcurs = Parcurs: }
Obiectul numit masiv (array) este un grup de doua sau mai multe elemente
omogene. Prin intermediul unui indice, se poate face referire la unul din
aceste elemente. Ca si in C++ in JavaScript se consideră că indicele
porneşte de la 0. Spre deosebire de C/C++ sau Java, JavaScript nu obligă
specificarea tipului datelor.
Exemplu. Fie obiectul elev cu următoarele proprietăţi: nume, adresă,
vârsta, sex, clasă, şcoală, boli. Ultimul parametru nu este un şir de literali,
pentru că aceasta ar ocupa foarte mult, ci un nume care ascunde în el ce
PROGRAMARE HTML, XML
9.8.1.1 Metode
1. Metoda open(fişier_html, nume, parametri) are rolul de a deschide o
fereastră. Parametrii sunt:
• fişier_html – adresa URL a fişerului html care este încărcat de fereastră;
• nume – numele ferstrei;
• parametri – mai mulţi parametri care au rolul de a specifica modul în care
va fi afişată fereastra pe ecran. Aceştia sunt:
- top – distanţa în pixeli faţă de partea de sus a ecranului la care va fi
afişată fereastra;
- left - distanţa în pixeli faţă de partea din dreapta ecranului la care va
fi afişată fereastra;
- width – lăţimea ferestrei în pixeli;
- height – înălţimea ferestrei în pixeli
- resizable – poate lua una din valorile yes sau no. Dacă ia valoarea
yes, utilizatorul poate modifica dimensiunile ferestrei;
- menubar - poate lua una din valorile yes sau no. Dacă ia valoarea
yes, fereastra afişează meniul browser-ului;
- toolbar - poate lua una din valorile yes sau no. Dacă ia valoarea
yes, fereastra afişează bara cu instrumente a browser-ului;
- status - poate lua una din valorile yes sau no. Dacă ia valoarea yes,
fereastra afişează bara de stare;
- location - poate lua una din valorile yes sau no. Dacă ia valoarea
yes, fereastra afişează edit-ul care conţine adresa fişierului html;
- copyhistory - poate lua una din valorile yes sau no. Dacă ia
valoarea yes, copiază istoria apelurilor ferestrei părinte.
PROGRAMARE HTML, XML
9.8.1.2 Proprietăţi
O proprietate deosebit de utilă este status. Valoarea reţinută de această
proprietate va fi afişată pe bara de stare.
Alte proprietăţi importante sunt: document, frame, history, location.
Acestea sunt, la rândul lor obiecte.
Obiectul document
Este de mare complexitate şi conţine mai multe proprietăţi şi metode. Printre
acestea avem proprietatea de tip obiect all. Ea este un vector al tuturor
elementelor care se găsesc pe pagină. Microsoft numeşte o astfel de
proprietate Colecţie, Fiecare element este tratat ca obiect. Printre
elementele (obiectele) care fac parte din vector găsim: HTML, HEAD,
BODY, TITLE (chiar dacă nu este trecut tag-ul respectiv), STYLE, SCRIPT,
câte un element pentru fiecare paragraf(P), imagine(IMG), etc. Fiecare
PROGRAMARE HTML, XML
CAPITOLUL X
CSS, XML, XHTML [200, ………..],
Este indicat ca regulile de stil să fie memorate într-un fişier extern, care
poate fi partajat de mai multe documente. Se spune ca se lucreaza cu foi de
stil definite in fisiere externe.
O foaie de stil externă poate fi scrisă cu orice alt editor de texte, nu va
include nici un tag HTML şi va fi salvată cu extensia .css.
Elementul LINK are trei atribute obligatorii: type cu valoarea ”text/css”, rel cu
valoarea ’’stylesheet” si ”href” care are ca valoare URL-ul foii de stil externe
Specificaţiile oferite prin elementul LINK sunt:
Orice foaie de stil conţine o listă de comenzi, care sunt identificate din
ansamblul de reguli declarate reguli predefinite.
Regulile predefinite, ale căror nume incep cu cu simbolul `@` (at), urmat
imediat de un identificator, permit obţinerea unor funcţii care nu sunt
accesibile regulilor normale. Aceste reguli predefinite sunt:
- @page – aplică stilurile paginilor documentului;
- @import – inserează o foaie de stil externă în foaia de stil curentă;
- @media – regrupează regulile de stil care se vor aplica unuia sau mai
multor dispozitive pentru prezentarea documentului;
- @font-face – descrie setul de caractere utilizat prin foaia de stil;
- @charset – defineşte codul caracterelor utilizat prin foaia de stil.
………………………………………
HTML arăta cum datele sunt afişate , XML arăta cum datele sunt utilizate
Ideea centrală a XML este de a permite celor trei aspecte fundamentale ale
unui document: conţinut, structură şi prezentare să fie separate. Un
document HTML combină doar prezentarea şi conţinutul.
Cea mai mare parte a documentelor XML au asociate foi de stil pentru a
permite afişarea într-un anumit format pe ecran. Acelaşi document poate fi
prezentat în mai multe moduri. De exemplu, autorul unui document poate
asigura prezentarea informaţiei, după caz, cum ar fi:
• afişarea pe ecranul unui PC, cu o anumită aranjare în pagină;
• recepţionarea sonoră printr-un software specializat (sintetizator vocal),
conectarea la Web se face printr-un telefon mobil;
• tipărirea pe hârtie, cu o grafică de înaltă calitate;
Eemplu:
PROGRAMARE HTML, XML
- <?xml version="1.0"?>
- <!DOCTYPE Cont SYSTEM "cont.dtd">
Liniile de cod spun procesorului XML ca documentul este din clasa Cont si
se conformeaza regulilor stabilite în fisierul Cont.dtd.
DTD-ul (Document Type Definition - definitia tipului de document) - defineste
forma si sintaxa constructiilor unui document XML dintr-o anumita clasa.
DTD este un set de reguli care definesc modul de structurare
a documentelor XML.
Standardele DTD-ului sunt definite de World Wide Web Consortium (W3C).
Un document XML poate sa aibe sau nu asociat un DTD, Acesta este intern
(definit in interiorul fisierului XML) sau extern (definit intr-un fisier separate).
Urmatorul exemplu defineste un DTD extern.
PROGRAMARE HTML, XML
Pe site-ul:
http://www.siteuri.ro/developer/xml-in-10-points.ro.html
- este un set de reguli pentru a crea formate text care iti permit sa
structurezi datele.
- nu este un limbaj de programare
- ajuta calculatorul la generarea , cititirea datelor, si structurarea corecta a
datelor.
- este extensibil, independent de platforma si suporta internationalizarea si
localizarea.
- este complet compatibil cu Unicode.
2. XML seamana un pic cu HTML
Ca si HTML, XML foloseste :
- tag-uri (cuvinte cuprinse in '<' si '>')
- atribute (de forma nume="valoare").
HTML specifica ce inseamna fiecare tag si atribut, si deseori cum va aparea
textul marcat cu acestea in browser.
XML foloseste taguri pentru a delimita bucati de date, lasand interpretarea
acestor date cu totul in seama aplicatiei care le citeste. Astfel, "<p>" intr-un
fisier XML, nu inseamna obligatoriu paragraf. In functie de context, poate fi
un pret, un parametru, o persoana (sau un cuvant care nici macar nu incepe
cu p).
PROGRAMARE HTML, XML
Alegand XML pentru un proiect, vei putea folosi un numar mare de aplicatii
(este posibil ca una dintre ele sa poata face deja ce ai tu nevoie). Nu trebuie
licenta pentru a folosi XML, nu trebuie sa platesti nimic nimanui.
Comunitatea mare de persoane care folosesc XML inseamna ca nu depinzi
de un sigur producator. Desi XML nu este intotdeauna cea mai buna solutie,
se merita cel putin sa il consideri printre optiuni.
PROGRAMARE HTML, XML
• Etichetele SE INCHID,
BIBIOGRAFIE
200. http://www.siteuri.ro/developer/xml-in-10-points.ro.html
http://inf.ucv.ro/~mihaiug/courses/xml/ValidareaDocumentelorXML.pdf
PROGRAMARE HTML, XML
ANEXA 3
<HTML>
<! SCOP: calcule interactve >
<HEAD>
<TITLE>Exemplu</TITLE>
<script language="JavaScript1.2">
/* Flying Butterfly script (By BGAudioDr@aol.com)
Modified slightly/ permission granted to Dynamic Drive to feature script in archive
For full source, visit http://www.dynamicdrive.com */
var Ymax=8; //MAX # OF PIXEL STEPS IN THE "X" DIRECTION
var Xmax=8; //MAX # OF PIXEL STEPS IN THE "Y" DIRECTION
var Tmax=10000; //MAX # OF MILLISECONDS BETWEEN PARAMETER CHANGES
//FLOATING IMAGE URLS FOR EACH IMAGE. ADD OR DELETE ENTRIES. KEEP
ELEMENT NUMERICAL ORDER STARTING WITH "0" !!
var floatimages=new Array();
floatimages[0]='butterfly2.gif';
floatimages[1]='butterfly2.gif';
//*********DO NOT EDIT BELOW***********
var NS4 = (navigator.appName.indexOf("Netscape")>=0 &&
parseFloat(navigator.appVersion) >= 4 && parseFloat(navigator.appVersion) < 5)? true :
false;
var IE4 = (document.all)? true : false;
var NS6 = (parseFloat(navigator.appVersion) >= 5 &&
navigator.appName.indexOf("Netscape")>=0 )? true: false;
var wind_w, wind_h, t='', IDs=new Array();
for(i=0; i<floatimages.length; i++){
t+=(NS4)?'<layer name="pic'+i+'" visibility="hide" width="10" height="10"><a
href="javascript:hidebutterfly()">' : '<div id="pic'+i+'" style="position:absolute;
visibility:hidden;width:10px; height:10px"><a href="javascript:hidebutterfly()">';
t+='<img src="'+floatimages[i]+'" name="p'+i+'" border="0">';
t+=(NS4)? '</a></layer>':'</a></div>';}
document.write(t);
function moveimage(num){
if(getidleft(num)+IDs[num].W+IDs[num].Xstep >= wind_w+getscrollx())IDs[num].Xdir=false;
if(getidleft(num)-IDs[num].Xstep<=getscrollx())IDs[num].Xdir=true;
if(getidtop(num)+IDs[num].H+IDs[num].Ystep >= wind_h+getscrolly())IDs[num].Ydir=false;
if(getidtop(num)-IDs[num].Ystep<=getscrolly())IDs[num].Ydir=true;
moveidby(num, (IDs[num].Xdir)? IDs[num].Xstep : -IDs[num].Xstep , (IDs[num].Ydir)?
IDs[num].Ystep: -IDs[num].Ystep);}
function getnewprops(num){
IDs[num].Ydir=Math.floor(Math.random()*2)>0;
IDs[num].Xdir=Math.floor(Math.random()*2)>0;
IDs[num].Ystep=Math.ceil(Math.random()*Ymax);
IDs[num].Xstep=Math.ceil(Math.random()*Xmax)
setTimeout('getnewprops('+num+')', Math.floor(Math.random()*Tmax));}
function getscrollx(){
if(NS4 || NS6)return window.pageXOffset;
if(IE4)return document.body.scrollLeft;}
function getscrolly(){
PROGRAMARE HTML, XML
clearInterval(startfly)}}
if (NS4||NS6||IE4){
window.onload=init;
window.onresize=function(){ wind_w=getwindowwidth(); wind_h=getwindowheight(); }}
</script>
<SCRIPT>
//lungimea cercului este calculata cu formula obisnuita 2*Pi*r
function calcul(obiect){
obiect.LungimeCerc. value=3.14*obiect.razaCerc.value*2 }
</SCRIPT>
<HEAD>
<BODY>
<FORM NAME="calculCerc">
Precizati raza cercului <INPUT TYPE=text NAME=razaCerc SIZE=25> <P>
Lungimea este <INPUT TYPE=text NAME=LungimeCerc SIZE=30> <P>
<INPUT TYPE=button NAME=buton VALUE="Declansati calculul"
ONCLICK="calcul(this.form)">
</FORM>
</BODY>
</HTML>