Documente Academic
Documente Profesional
Documente Cultură
1. Introducere
2. Sintaxa JavaScript
3. Notiuni de baza
4. Operatori
5. Instructiuni Conditionale
6. Instructiuni ciclice
7. Instructiuni Complementare
9. Functii JS 1
10. Functii JS 2
14. DOM
19. Evenimente JS
27. Cookie 1
28. Cookie 2
29. getElementByld
30. getElementByTagName
31. createElement-insertBefore
Pentru a insera cod JavaScript într-un document HTML deja existent, este
necesară introducerea în fișier a etichetelor pereche : <script> respectiv </script>.
Eticheta de început necesita unul din atributele: "type" sau "language" (cu
precizarea ca acesta din urma este depreciat in standardul XHTML) care va
specifica browser-ului limbajul folosit pentru interpretarea codului inclus.
In interiorul etichetelor <script> . . . </script> vom scrie codul dorit.
Pentru scrierea si executarea programelor JavaScript avem nevoie de un
editor de texte (cel mai simplu pentru Windows ar fi Notepad sau emacs pentru
Unix) si un browser (ex. Mozilla Firefox, Internet Explorer, ...).
- Atributul "language" (folosit doar in paginile web standard HTML, nu este
folosit in XHTML,), va avea urmatoarea sintaxa:
<script language="JavaScript">
aceasta specifica browser-ului ce limbaj este folosit
- Atributul "type" – inlocuitorul/alternativa lui "language" cu urmatoarea
sintaxa:
<script type="text/javascript">
atributul spunând browser-ului ca scriptul este scris in format plaintext.
Avem, de asemenea, posibilitatea sa introducem instructiuni JavaScript intr-
un fisier extern, cu extensia ".js":
<script src="cod.js" type="text/javascript"> ... </script>
(pentru editarea unui astfel de fisier este nevoie de un editor simplu de texte).
Avantajul folosirii unui astfel de fișier este faptul ca putem folosi acelasi
cod in mai multe pagini HTML iar in cazul necesitatii unei modificari in codul
JavaScript, modificam doar datele dintr-un singur fisier (cel cu extensia ".js").
Dezavantajul acestei metode este faptul ca intr-un fisier extern ".js" nu
putem folosi etichete HTML, ci numi instructiuni JavaScript.
In cazul in care codul JavaScript se afla intr-un fisier extern, eticheta
<script> din pagina HTML va trebui sa contina atributul "src" a carui valoare
determina locatia fisierului in care se afla codul JavaScript.
In fisierul extern cu extensia ".js" nu trebuie sa scriem eticheta "<script>",
scriem direct instructiunile scriptului.
Iata un exemplu scris intr-o sursa HTML:
<html>
<head>
<title>Cod JavaScript</title>
</head>
<body>
<script type="text/javascript">
document.write("Textul care va fi afisat pe ecran");
</script>
</body>
</html>
Iata un exemplu de script JavaScript scris in interiorul unei pagini web (XHTML):
3. Conventii de sintaxa
1. Folosirea variabilelor
Intr-un script (program) se folosesc atat date constante cat si date variabile
care isi schimba valorile in timpul executei programului. Aceste date se numesc
variabile.
Modul cel mai simplu de a folosi si a face referire la o astfel de data
variabila este de a o denumi. Numele variabilei permite accesul la valoarea ei
precum si schimbarea valorii daca este necesar.
Se poate crea o variabila, atribuindu-i o valoare, prin doua metode:
variabila = numele unei locatii din memoria calculatorului,
folosita pentru a memora date.
Cu declaratia var
var nume = valoare
Fara declaratia var
nume = valoare
Unde 'nume' este numele variabilei iar 'valoare' este valoarea pe care i-o
atribuim.
Tipuri de variabile - Spre deosebire de alte limbaje (cum sunt Pascal sau C),
JavaScript nu are tipuri fixe de date, adica permite schimbarea tipului unei variabile
in cadrul scriptului, acesta poate recunoaste singur cand datele sunt de tip "sir",
numerice sau alt tip.
Exemplu:
var x =”xyz”;
X=8;
Observati ca valorile de tip 'sir' (formate din litere) se scriu intre ghilimele, iar cele
'numerice' pot fi scrise si fara ghilimele.
2. Operatori
1. Operatori aritmetici
2. Operatori de atribuire
3. Operatori de comparare
Expresiile care folosesc acesti operatori pun o intrebare despre doua valori
pe care le compara iar raspunsul nu poate fi decât TRUE sau FALSE.
Un operator des folosit, este operatorul de identitate sau de comparatie,
reprezentat prin doua semne egal "==". Operatorul "==" este diferit de operatorul
"=". Operatorul '==' compara doua valori determinand daca acestea sunt identice,
adica daca acestea sunt egale atat ca valoare cat si ca tip.
Operatori de comparatie sunt prezentati in tabelul urmator:
|| - sau (or) - Compara doua expresii si returneaza TRUE daca cel putin una
din ele este adevarata, in caz contrar returneaza FALSE.
Exemplu:
x=5
y=8
x>7 || y<3
(returneaza FALSE)
Observati ca nu este saptiu intre 'zi' si 'frumoasa'. Pentru a adauga spatiu intre
siruri, sunt doua modalitati:
1 - Adaugati spatiu intre variabilele string
Exemplu:
t1 = "Astazi este o zi"
t2 = "frumoasa"
t3 = t1+" "+t2
(Variabila 't3' va contine sirul "Astazi este o zi frumoasa")
6. Operatorul typeof
Operator Descriere
typeof parseFloat returneaza sirul 'function'
typeof 33 returneaza sirul 'number'
typeof "un anume text" returneaza sirul 'string'
typeof true returneaza sirul 'boolean'
typeof window returneaza sirul 'object'
Functiile vor fi explicate in una din lectiile urmatoare, totusi este util sa fiti
familiarizati cu doi operatori:
1. Primul se numeste operator de apelare si este reprezentat printr-o pereche
de paranteze rotunde () care urmeaza intodeauna dupa numele functiei,
astfel o functie va fi declarata astfel:
function nume_functie() {
// Corpul functiei
}
Apoi operatorul de apelare este folosit din nou cand functia este apelata in
interiorul scriptului:
nume_functie()
Parantezele aratand ca este folosita o functie.
Al doilea operator pentru functii este virgula "," care se foloseste pentru a
separa mai multe argumente, din interiorul parantezei, pe care le primeste o functie.
Argumentele sunt scrise intodeauna in interiorul parantezelor rotunde si sunt
separate prin virgula.
Astfel, o functie cu doua argumente arata astfel:
function nume_functie(arg1, arg2) {
// Corpul functiei
}
Acesti operatori sunt necesari atunci cand lucram cu structuri de date, sau obiecte.
In JavaScript obiectele sunt folosite la gruparea informatiilor pentru a servi
unui scop specific.
1. Un operator care ar trebui cunoscut bine este punctul "." , numit operator
pentru membrul unei structuri. Acesta ne permite sa ne referim la un
membru ( variabila ,functie sau obiect ) care apartine obiectului specificat.
Sintaxa este urmatoarea:
numeObiect.nume_Variabila
numeObiect.nume_Functie()
numeObiect.alt_Obiect
Aceasta modalitate de referire la o informatie, numita notatie cu punct,
returneaza valoarea variabilei, functiei sau obiectului aflat cel mai in
dreapta.
2. Operatorul folosit pentru un element din matrice, numit si operator indice
al tabloului, se foloseste pentru a accesa o data specifica, o cheie, dintr-un
tablou de date. Acesta este simbolizat printr-o pereche de paranteze drepte
[], si permite referirea la orice membru al unui tablou.
Tablourile sunt obiecte JavaScript si vor fi detaliate in lectiile urmatoare.
Sintaxa de folosire a operatorului pentru tablou este:
nume_tablou[cheie]
Partea cea mai interesanta, dar si dificila, in scrierea unui script este
proiectarea acestuia astfel incat sa ia decizii in timp ce este executat.
Cu ajutorul instructiunilor conditionale putem face programele sa testeze
diferite conditii dupa care sa decida modul de executie a datelor.
In Java Script sunt urmatoarele instructiuni conditionale:
1. Instructiunea "if"
Se poate spune ca instructiunea "if" este una din cele mai des folosite.
Forma generala a acestei instructiuni este urmatoarea:
if (conditie) {
codul care va fi executat daca este adevarata conditia
}
Unde 'conditie' poate fi orice expresie logica.
Daca rezultatul conditiei este TRUE se executa codul dintre acolade, in caz
contrar, se trece peste acest cod iar conditia returneaza FALSE,.
Iata un exemplu practic. Urmatorul script afiseaza "Buna ziua" daca ora este
mai mare decat 11. Se foloseste obiectul Date care determina data curenta (va fi
explicat mai amanuntit in alta lectie).
<script type="text/javascript">
<!--
// daca ora > 11, va scrie în fereastra Buna ziua!
var d = new Date()
var time = d.getHours()
if (time>11) {
document.write("<b>Buna ziua!</b>")
}
//-->
</script>
Am definit variabila 'd' a carei valoare este data curenta, apoi variabila
'time' preia numai ora din variabila 'd'. Conditia din instructiunea "if" verifica daca
ora este mai mare decat 11 si in caz adevarat executa comanda dintre acolade, care
afiseaza mesajul.
Daca ora este mai mica decat 11 scriptul nu executa instructiunea dintre
acolade.
if (conditie) {
codul care va fi executat daca este adevarata conditia
}
else {
codul care va fi executat daca conditia este falsa
}
<script type="text/javascript">
<!--
// daca ora > 11,
// va scrie în fereastra Buna ziua!
// Alfel afiseaza "Este ora ..."
var d = new Date()
var time = d.getHours()
if (time>11) {
document.write("<b>Buna ziua!</b>")
} else {
document.write("<b>Este ora " +time+ "</b>")
}
//-->
</script>
Am definit variabila 'd' a carei valoare este data curenta, apoi variabila
'time' preia ora din variabila 'd'.
Conditia din instructiunea "if" verifica daca ora este mai mare decat 11.
Daca ora este mai mare decat 11 executa comanda dintre primele acolade.
Daca ora este mai mica decat 11 scriptul va executa comanda din grupul de
acolade determinat de "else". (Observati folosirea operatorului de concatenare +).
3. Instructiunea switch
Aceasta instructiune e folosita pentru a compara o valoare cu altele dintr-o lista.
Sintaxa generala a instructiuni "switch" este urmatoarea:
switch (expresie) {
case valoare1:
se executa daca expresie = valoare1
break
case valoare2:
se executa daca expresie = valoare2
break
case valoare3:
se executa daca expresie = valoare3
break
default :
se executa daca expresie e diferit de valoare1, valoare2 sau valoare3
}
Prima data este evaluata expresia scrisa intre paranteze rotunde, apoi
valoarea expresiei este comparata pe rand cu fiecare valoare determinata de "case".
Daca se gaseste o identitate se executa codul asociat acelui "case". Apoi se iese din
instructiunea "switch".
Cazul în care, parcurgand fiecare "case", nu se gaseste o egalitate, se
executa codul de dupa "default".
Prin folosirea lui "break" se opreste parcurgerea corpului instructiunii atunci
cand s-a gasit o valoare egala cu 'expresie' si se iese din "switch".
Iata un exemplu de script care afiseaza un mesaj in functie de zilele
saptamanii:
<script type="text/javascript">
<!--
var d = new Date()
var ziua = d.getDay()
switch (ziua) {
case 5:
document.write("Astazi e vineri");
break
case 6:
document.write("Astazi e sambata");
break
case 0:
document.write("Astazi e duminica");
break
default:
document.write("Mai e pana sambata");
}
//-->
</script>
Am definit variabila 'd' a carei valoare este data curenta, apoi variabila 'ziua'
care preia numarul zilei din variabila 'd' (duminica = 0, luni = 1, ...). Se intra in
corpul instructiunii "switch" si se verifica, pe rand, fiecare valoare "case" cu
valoarea variabilei 'ziua', cand se gaseste egalitatea se executa comanda asociata
acelui 'case' si se iese din "switch".
Daca nici una din valorile 'case' nu este egala cu valoarea variabilei 'ziua',
se va executa comanda de dupa 'default', care afiseaza mesajul: "Mai e pana
sambata".
Inca un exemplu cu "case", de data aceasta folosim valori de tip sir (string).
<script type="text/javascript">
<!--
var nume = "Marius";
switch (nume) {
case "Cristi":
document.write("Coleg");
break
case "Marius":
document.write("Frate");
break
case "Maria":
document.write("Sora");
break
default:
document.write("Altcineva");
}
//-->
</script>
Va returna Frate.
Dar in general "case" e recomandat sa fie folosit cu valori numerice.
Lectia 5
Instructiuni ciclice (repetitive)
1. Instructiunea for
Aceasta are urmatoarea forma generala:
for (incepere_nr; conditie_nr; ciclu) {
cod care va fi executat
}
unde:
"incepere_nr" e folosit la 'initializare' pentru a da o valoarea initiala
numarului de repetari, de multe ori prin aceasta se declara o variabila care poate fi
folosita ca un contor al ciclului.
"conditie_nr" verifica daca numarul de cicluri se incadreaza intr-o anumita
valoare si daca rezultatul este TRUE se executa inca o data codul dintre acolade.
"ciclu" incrementeaza sau decrementeaza valoarea la care a ajuns contoarul
ciclului, apoi aceasta valoare este verificata din nou de "conditie_nr" pana cand
rezultatul este FALSE.
Aceste trei expresii dintre parantezele rotunde sunt optionale, dar daca este
omisa una dintre ele, caracterul punct si virgula ";" trebuie sa ramana pentru ca
fiecare expresie sa ramana la locul ei.
In interiorul instructiunii for (ca si la instructiunea "if"), intre acolade, pot fi
introduse si alte instructiuni "for", sau alte instructiuni conditionale, acest lucru se
numeste imbricarea instructiunilor.
Iata un exemplu simplu de utilizare a instructiunii "for":
<script type="text/javascript">
<!--
for (x=1; x<5; x++) {
document.write("<br /> x este "+x);
}
//-->
</script>
Se atribue lui 'x' valoarea 1, se verifica conditia (x<5) care în acest caz este
adevarata si se executa corpul instructiunii (dintre acolade, care afiseaza "x este 1")
apoi se incrementeaza valoarea lui 'x' cu o unitate (x++), acum x are valoarea 2. Se
verifica din nou conditia (x<5) si fiindca este adevarata, se executa iar corpul
instructiunii apoi se incrementeaza valoarea lui 'x', ..., si tot asa pana cand 'x' va
ajunge sa aibe valoarea 5 care la verificarea conditiei returneaza FALSE, moment in
care se termina executia instructiunii "for".
Acest script va afisa urmatorul rezultat:
X este 1
X este 2
X este 3
X este 4
Iata un exemplu din care puteti intelege modul de lucru a lui break:
<script type="text/javascript">
for (x=1; x<10; x++) {
document.write("<br /> X este "+x);
if (x==3) {
break;
}
}
</script>
X este 2
X este 3
Dupa cum se poate observa, nu au fost executate toate ciclurile instructiunii
"for", conform conditiei (pana cand 'x' ar fi avut valoarea 10), executia se intrerupe
cand 'x' are valoarea 3.
continue - intrerupe executia repetarii curente, inainte de a fi executate
celelalte operatii din ciclu, apoi se verifica din nou conditia si se continua
cu executarea ciclului.
Studiati si urmatorul exemplu, in care este folosit continue:
<script type="text/javascript">
for (x=1; x<8; x++) {
if (x==3 || x==5) {
continue;
}
document.write("<br /> X este "+x);
}
</script>
X este 2
X este 4
X este 6
X este 7
3. Instructiunea with
Unde "obiect" specifica referirea la obiect care trebuie folosita, daca aceasta
nu exista in blocul "instructiuni". Ajuta mult cand se utilizeaza de mai multe ori
functii matematice avansate, prin intermediul obiectului "Math". (Acest obiect va fi
explicat mai tarziu).
In exemplul urmator este prezentat modul de folosire a instructiunii "with":
<script type="text/javascript">
<!--
with(document) {
write("Salut");
write("Acum nu mai este necesara folosirea obiectului ca prefix al functiei");
}
//-->
</script>
Acest script va afisa:
Salut
Acum nu mai este necesara folosirea obiectului ca
prefix al functiei
In mod normal, pt. a afisa un text folosim sintaxa:
document.write("text ..."),
dar aici, prin folosirea lui 'with' impreuna cu obiectul "document", nu mai este
necesara adaugarea acestuia la metoda "write", astfel se scurteaza codul scriptului.
Lectia 7
Ferestre Alert, Prompt si Confirm
Alert, Prompt si Confirm sunt ferestre predefinite de dialog, acestea apartin direct
obiectului "Window" (despre obiecte si ierarhia acestora puteti invata in Lectia
12).
1. Fereastra Alert
window.alert("me
saj")
2. Fereastra Prompt
<script type="text/javascript">
<!--
var nume = window.prompt("Scrieti numele", "Nume");
alert("Salut "+nume+"\n Bine ai venit.");
//-->
</script>
3. Fereastra Confirm
<script type="text/javascript">
<!--
intrebare = window.confirm("Rezultatul lui 0+0 este 0?");
if (intrebare) alert("Corect");
else alert("Incorect");
//-->
</script>
2. Instructiunea return
function
suma(x, y) {
z = x+y;
return z
}
3. Apelarea functiilor
<html>
<head>
<script type="text/javascript">
<!--
function exemplu3(x,y) {
var z = 0;
z = x+y;
return alert("Suma lui "+x+" cu "+y+" este: "+z)
}
//-->
</script>
</head>
<body>
<form>
<input type="button" onclick="exemplu3(7, 8)"
value="Suma" />
</form>
</body>
</html>
Acest cod va afisa in pagina HTML un buton pe care va fi afisat cuvantul „Suma”
care la click pe buton va afisa o fereastra in care va fi afisat stringul:
"Suma lui 7 cu 8 este: 15".
- Studiati cu atentie scriptul, modul in care au fost combinate: "alert()", sirul si
valoarea argumentelor "x, y", variabila "z" si modul in care functia "exemplu3" este
apelata.
In interiorul functiei pot fi folosite instructiuni complexe, cum ar fi "for", "if",
"while"; care pot lua decizii diferite in functie de argumentele functiei. Depinde
doar de cunostintele si imaginatia dv.
Lectia 9
Functii – 2
<html>
<head>
<script type="text/javascript">
<!--
function mesaj(utilizator) {
if (utilizator!=null) {
document.writeln("Salut "+utilizator);
} else {
document.writeln("Bine ati venit pe site!");
}
}
//-->
</script>
</head>
<body>
<script type="text/javascript">
<!--
document.writeln("Prima apelare a functiei mesaj() <br />");
mesaj("Nicu");
document.writeln("<br />A doua apelare a functiei mesaj()
<br />");
mesaj();
//-->
</script>
</body>
</html>
if(numarArgumente>1) {
for (var i=1; i<numarArgumente; i++) {
document.writeln(mesaj.arguments[i]);
}
}
}
//-->
</script>
</head>
<body>
<script type="text/javascript">
<!--
var utilizator="Marius", extraMesaj="Bine ai revenit";
var utilizator2=null;
var extraMesaj1="\"Vrei sa te asociezi grupului ?\"";
var extraMesaj2="Te poti inscrie online";
mesaj(utilizator,extraMesaj);
document.writeln("<hr>");
mesaj(utilizator2,extraMesaj1,extraMesaj2);
//-->
</script>
</body>
</html>
2. Functii recursive
O functie JavaScript poate fi recursiva, adica se poate autoapela.
O metoda buna de a demonstra capacitatea recursiva a functiilor este
rezolvarea unei ecuatii factoriale.
In exemplul urmator avem o functie JavaScript recursiva care afla
factorialul unui numar precizat "n" (in ex. nostru 7):
<html>
<head>
<script type="text/javascript">
<!--
document.writeln("Calculeaza factorialul de 7 prin functie
recursiva")
function factorial(n) {
var rezultat;
if (n>0) {
rezultat = n*factorial(n-1);
}
else if (n==0) {
rezultat = 1;
}else {
rezultat = null;
}
return(rezultat)
}
//-->
</script>
</head>
<body>
<form>
<input type = "button" value = "Factorial 7"
onclick="alert(factorial(7))" >
</form>
</body>
</html>
In fereastra browser-ului va apare urmatorul rezultat:
Calculeaza factorialul de 7 prin functie recursiva
[Factorial 7] ← buton (dupa click pe buton, apare)
Functia verifica intai daca "n" este mai mare decat 0, in caz afirmativ, "n"
se inmulteste cu rezultatul returnat de auto-apelarea functiei cu argumentul "n-1".
Cand "n" ajunge 0, aparitia cea mai imbricata a functiei se incheie si returneaza
prima valoare. JavaScript incheie fiecare functie imbricata pana ce ajunge la
apelarea initiala a functiei "factorial", apoi intoarce rezultatul final.
Lectia 10
Obiectele Java Script – 1
Astfel, avem mai multe tipuri de obiecte care pot fi folosite. E bine de stiut
pentru incepatori ca, in principal, obiectele pe partea de client si cele esentiale, sunt:
"string", "math" sau cele care vin de la etichetele HTML.
Mai multe astfel de obiecte pot forma o grupa numita "clasa". Astfel,
diferite obiecte incorporate pentru o executie comuna formeaza un "set de clase"
care se mai numesc si "biblioteci de clase", iar pentru limbajul JavaScript aceasta
se numeste "biblioteca de obiecte JavaScript", cu specificatia ca acestea pot fi
refolosite.
JavaScript are urmatoarele obiecte esentiale, predefinite:
1 - String
2 - Math
3 - Date
4 - Array
5 - Global
1. Obiectul string
Primului caracter din sir are pozitia 0, al doilea caracter are pozitia 1, si tot asa ....
Dupa ce este adaugat intr-un document HTML, acest script va afisa in
pagina urmatorul rezultat:
MarPlo.net - Cursuri, Jocuri si Anime
Acest sir are 37 caractere
stringul cautat este "Jocuri" si incepe de la pozitia: 22
<script type="text/javascript">
<!--
var sir = 'Un sir test: 123ab 78%';
var sablon = /\D/g; // \D este echivalent cu [^0-9] iar /g determina urmarirea
sablonului in tot sirul
sir = sir.replace(sablon, '');
document.write(sir);
//-->
</script>
Unde intre parantezele rotunde este trecut numarul de elemente ale tabloului, aici 4.
Numarul de elemente, cheile, incep implicit de la 0.
Pentru a da valori elementelor din tablou, se scrie numele tabloului urmat
de o pereche de paranteze patrate, in interiorul carora se adauga cheia specifica
fiecarui element, apoi semnul egal si valoarea dorita. Dupa cum puteti vedea in
urmatorul exemplu:
nume_colegi[0] =
"Cristi"
nume_colegi[1] = "Ion"
nume_colegi[2] =
"Simona"
nume_colegi[3] = "Adi"
sort()
<script type="text/javascript">
<!--
var nume_colegi = new Array();
nume_colegi[0] = "Cristi";
nume_colegi[1] = "Ion";
nume_colegi[2] = "Simona";
nume_colegi[3] = "Adi";
Iata un alt exemplu din care puteti intelege cum se aplica metoda "sort()" si
efectul acesteia. Folosim acelasi exemplu de mai sus.
"sort()" sorteaza elementele din Array in ordine alfabetica (sau crescatoare
in cazul valorilor numerice).
<script type="text/javascript">
<!--
var nume_colegi = new Array();
nume_colegi[0] = "Cristi";
nume_colegi[1] = "Ion";
nume_colegi[2] = "Simona";
nume_colegi[3] = "Adi";
data.getDate()
Se pot crea si altfel obiecte Date, care pot afisa data si ora intr-un
mod specificat:
new Date("Month dd, yyyy
hh:mm:ss")
new Date("Month dd, yyyy")
new
Date(yy,mm,dd,hh,mm,ss)
new Date(yy,mm,dd)
new Date(milliseconds)
3. Obiectul Math
<script type="text/javascript">
document.write("8.35 rotunjit este: " + Math.round(8.35));
</script>
Calculare
Rezultatul este:
Dupa apasarea butonului "Calculare", prin "onclick" este accestata
functia "calculeaza()". Scriptul JavaScript din HEAD, transfera in
campul cu nmele "rezultat", din FORM, valoarea obtinuta prin
evaluarea expresiei adaugate in campul "expresie", calcularea
expresiei fiind posibila datorita folosirii metodei "eval()".
Lectia 12
Ierarhia Java Script
1. Obiectul document
<html>
<head>
<script type="text/javascript">
<!--
function afisare(){
nume = document.nume_form.nume_camp.value;
return nume
}
//-->
</script>
</head>
<body >
<form name="nume_form">
Name: <input type="text" name="nume_camp" value=""><br>
<input type="button" value="Apasa" name="Buton"
onClick="alert('Salut ' +afisare())">
</form>
</body>
</html>
Lectia 13
DOM - Modelul Obiectului Document
Unde "id" este valoarea atributului "id" din etiheta HTML respectiva
iar "continut" este continutul (text, tag-uri) care va fi adaugat in
aceasta eticheta HTML (va inlocui orice alt context care se afla in
cadrul acestui element HTML).
Majoritatea obiectelor JavaScript din nivelul 2 sunt vazute ca obiecte
ale tag-urilor HTML, dupa cum puteti observa in lista de mai jos, in
care sunt prezentate obiectele JavaScript si etichetele HTML
corespunzatoare:
Button - <input type="button">
Checkbox - <input type="checkbox">
Hidden - <input type="hidden">
Fileupload - <input type="file">
Password - <input type="password">
Radio - <input type="radio">
Reset - <input type="reset">
Select - <select>
Frame - <frame>
Document - <body>
Layer - <layer> sau <ilayer>
Link - <a href="">
Image - <img>
Area - <map>
Anchor - <a name="">
Applet - <applet>
Plugin - <embed>
Form - <form>
Submit - <input type="submit">
Text - <input type="text">
Textarea - <textarea>
Option - <option>
2. Exemplu script
<html>
<head>
<title>Script JS</title>
<script type="text/javascript">
<!--
function CitesteDiv(){
valDiv =
document.getElementById("div_id").childNodes[0].nodeValue;
document.formular.text.value = valDiv;
}
// -->
</script>
</head>
<body>
<div id="div_id">Aici este textul din interiorul Div-ului</div>
<form action="fisier.php" method="post" name="formular">
<textarea cols="30" rows="5" name="text"
id="textul"></textarea> <br>
<input type="button" value="Adauga" onclick="CitesteDiv();" />
<input type="submit" value="Trimite" />
</form>
</body>
</html>
Trimite
Exemplul 2
Iata un alt exemplu, cu o actiune inversa celui de sus. Adica, textul
introdus intr-un camp textarea, dupa apasarea unui buton va fi inclus
in pagina in cadrul unei etichete HTML <div>, fara ca pagina sa fie
reincarcata.
Retineti, aceasta actiune este pe partea de client, vizibila doar de
utilizatorul actual, nu modifica pagina originala de pe server si dupa
inchiderea navigatorului textul introdus dispare.
<html>
<head>
<title>Script JS</title>
<script type="text/javascript">
<!--
function ScrieDiv(){
valText = document.formular2.text2.value;
document.getElementById("div_id2").innerHTML = valText;
}
// -->
</script>
</head>
<body>
<div id="div_id2">Aici va apare textul din formular</div><br>
<form name="formular2">
<textarea cols="30" rows="5" name="text2"
id="textul2"></textarea> <br>
<input type="button" value="Afiseaza" onclick="ScrieDiv();" />
</form>
</body>
</html>
- Am definit functia "ScrieDiv()" care va fi apelata la apasare butonului
"Afiseaza". In interiorul acestei functii avem variabila "valText" care
(prin codul "document.formular2.text2.value") preia sirul adaugat in
campul "text2" din formular, apoi, prin comanda
"document.getElementById("div_id2").innerHTML" transfera si
afiseaza sirul in cadrul etichetei <div>, inlocuindu-l pe cel existent.
Acest cod va afisa in pagina urmatorul rezultat:
Aici va apare textul din formular
Lectia 14
Obiecte de nivel 1
1. Obiectul Navigator
<body>
<script type="text/javascript">
<!--
document.write("Nume cod :".bold()
+navigator.appCodeName+"<br>");
document.write("Nume browser :".bold()
+navigator.appName+"<br>");
document.write("versiune :".bold()
+navigator.appVersion+"<br>");
document.write("limbaj :".bold()+navigator.language+"<br>");
document.write("MIME Type :".bold()
+navigator.mimeTypes+"<br>");
document.write("Platforma :".bold()
+navigator.platform+"<br>");
document.write("Plugin-uri :".bold()
+navigator.plugins+"<br>");
document.write("Agent :".bold()
+navigator.userAgent+"<br>");
document.close();
//-->
</script>
</body>
2. Obiectul History
Navigatoarele web au o caracteristica numita "History" care
permite urmarirea locatiilor pe care le-ati vizitat. Acest obiect contine
un tablou (Array) cu paginile vizitate de client, in cadrul unei ferestre,
un istoric al paginilor vizitate.
Obiectul History permite navigarea inapoi in lista istoric la
paginile care au mai fost vizitate in cadrul aceleasi ferestre.
<script type="text/javascript">
<!--
function inapoi3 {
window.history,go(-3);
}
//-->
</script>
3. Obiectul Location
Acest obiect contine date despre originea unei pagini web, stocheaza
informatii despre o adresa URL dintr-o fereastra specifica.
<form action="">
<input type="button" value="Click" onclick="get_url()" />
</form>
<script type="text/javascript">
var protocol = window.location.protocol;
</script>
Lectia 15
Obiecte de nivel 2
1. Obiectul Mimetype
2. Obiectul Plughin
3. Obiectul Anchor
Acest obiect este un text sau o imagine in pagina HTML care poate
fi tinta unei legaturi hipertext. "Anchor" este un obiect JavaScript
foarte putin important si folosit rar, totusi e bine sa-l cunoasteti
4. Obiectul Area
x - coordonata x a suprafetei
y - coordonata y a suprafetei
5. Obiectul Applet
6. Obiectul Layer
7. Obiectul Link
- Lectia 15
Lectia 16
Obiecte de nivel 3
2. Obiectul Checkbox
3. Obiectul FileUpload
4. Obiectul Hidden
Acest obiect se foloseste pentru stocarea anumitor date care vor fi
transferate unei prelucrari pe server. Datele stocate in obiectul
"hidden" sunt ascunse, nu apar vzibile in browser.
Proprietati ale obiectului "Hidden" sunt urmatoarele :
form - face referire la formularul ce contine obiectul
Hidden
name - contine numele obiectului Hidden
type - contine sirul specificat in atributul type al casetei
Hidden
value - contine sirul specificat in atributul "value" al
obiectului Hidden
5. Obiectul Password
6. Obiectul Radio
Lectia 17
1. Obiectul Reset
2. Obiectul Submit
3. Obiectul Select
4. Obiectul Text
5. Obiectul Textarea
Lectia 18
Evenimente JavaScript
1. Evenimentele JavaScript
Evenimente de mouse:
- onmousedown
- onmouseup
- onmousemove
- onmouseover
- onmouseout
- ondblclick
- onclick
1. - Exemplu "onClick"
Daca dorim executia unei anumite actiuni la apasarea unui click de
mouse, folosim "onClick".
<form>
<input type="button" value="Apasa" onClick="alert('Salut')" />
</form>
<html>
<head>
<script type="text/javascript">
function setfocus() {
document.form2.camp.select();
}
</script>
</head>
<body>
<br>
<a href="http://www.marplo.net"
OnMouseOver="this.style.color='red';"
OnMouseOut="alert('Fereastra deschisa cu onMouseOut')">
Apasa aici pentru a vizita MarPlo.net!
</a>
<form name="form2">
<input type="text" name="camp" size="30" value="orice
text">
<input type="button" value="Selecteaza" onclick="setfocus()">
</form>
</body>
</html>
3. - Exemplu "onKeyUp"
<html>
<head>
<script type="text/javascript">
<!--
function urmatorul(elment,text) {
if (text.length==elment.maxLength) {
next=elment.tabIndex;
if (next<document.form3.elements.length) {
document.form3.elements[next].focus();
}
}
}
//-->
</script>
</head>
<body>
- Cursorul se muta automat in urmatoarea caseta atunci cand s-a
completat tot campul precedent
(cand se ajunge la lungimea stabilita a campului, aici 4 caractere)
<br>
<form name="form3">
<input size="4" tabindex="1" name="field" maxlength="4"
onkeyup="urmatorul(this,this.value)">
<input size="4" tabindex="2" maxlength="4"
onkeyup="urmatorul(this,this.value)">
<input size="4" tabindex="4" maxlength="4"
onkeyup="urmatorul(this,this.value)">
</form>
</body>
</html>
- Functia "urmatorul(elment,text)", are doua argumente: "element"
(care, prin apel, se refera la caseta "input") si "text" (se refera la
valoarea casetei).
In apelul functiei: "urmatorul(this,this.value)", "this" se refera la
obiectul curent (reprezinta primul argument) iar al doile argument
"this.value" reprezinta valoarea obiectului curent (valoarea din camp).
Observati folosirea evenimentului onKeyup, pentru a se trece la
urmatorul camp atunci cand s-a completat ultimul caracter din caseta
precedenta.
Pentru a intelege mai bine puteti sa inlocuiti "onkeyup" cu
onkeydown pentru a vedea diferenta.
Pagina HTML rezultata din acest cod va afisa urmatorul rezultat:
- Cursorul se muta automat in urmatoarea caseta atunci cand s-a
completat tot campul precedent (cand se ajunge la lungimea stabilita a
campului, aici 4 caractere)
Lectia 19
Obiectul image - 1
<html>
<head>
<title>Titlu</title>
<script type="text/javascript">
<!--
imagini = new Array("img1.jpg","img2.jpg","img3.jpg");
nr = 0;
function goback() {
if (document.images && nr > 0) {
nr--;
document.imgs.src=imagini[nr];
}
}
function gonext() {
if (document.images && nr < (imagini.length - 1)) {
nr++;
document.imgs.src=imagini[nr];
}
}
// -->
</script>
</head>
<body>
<h4 align=center>Imagini<br>
<img src="img/img1.jpg" name="imgs" width="155"
height="155"><br>
<a href="javascript:goback()"><<- Precedenta</a> |
<a href="javascript:gonext()">Urmatoarea ->></a>
</h4>
</body>
</html>
Dupa ce aplicati acest cod intr-un document HTML veti avea in
browser urmatorul rezultat:
Imagini
1. Preincarcarea imaginilor
<script type="text/javascript">
<!--
var hiddenImg = new Image();
hiddenImg.src = "img2.jpg";
//-->
</script>
<img name="imagine" src="img1.jpg" width="155" height="155">
<form>
<input type="button"
onclick="document.imagine.src=hiddenImg.src" value="Schimba
imaginea">
</form>
<a href="#"
onMouseOver="document.Imgs.src='img1.jpg'"
onMouseOut="document.Imgs.src='img2.jpg'">
<img src="img3.jpg" name="Imgs" width="155" height="155"
border="0">
</a>
<a href="#"
onMouseOver="document.Imgs.src='img1.jpg'"
onMouseOut="document.Imgs.src='img2.jpg'">Legatura</a><b
r>
<img src="img3.jpg" name="Imgs" width="155" height="155"
border="0">
Iata un script complet care evita problemele de mai sus, desi este mai
lung, o data scris poate fi folosit cu usurinta si pt. alte pagini web si
cu un numar mai mare de imagini.
<html>
<head>
<script type="text/javascript">
<!--
// Daca browserul suporta JavaScript
// Creaza matricea care va stoca imaginile, in variabila pics
browserOK = true;
var pics = new Array();
// -->
</script>
<script type="text/javascript">
<!--
var objCount = 0; // numarul imaginilor care se modifica in
pagina web
Lectia 21
Obiectul Form - 1
Formularele sunt elemente HTML care dau viata unor pagini statice
deoarece asigura o interfata prin care vizitatorii pot interactiona, cu
ajutorul controalelor (elemente ale formularului).
Obiectul Form este mijlocul prin care se poate interactiona cu
acest element HTML in scripturile JavaScript.
if(f1.enctype == "application/x-www-form-urlencode") {
alert("Tipul de codificare e normal");
}
<script type="text/javascript">
<!--
// Verifica daca input OK
function validare() {
if (inputOK) return true;
else return false;
}
//-->
</script>
...
<form method="post" name="nume_form" action="script.php"
onSubmit="return validare()">
...
- Despre validarea datelor dintr-un formular veti putea invata mai
multe in lectia urmatoare.- Lectia 21
Lectia 22
Obiectul Form - 2
<script type="text/javascript">
<!--
function setfocus () {
document.nume_form.nume_camp.focus();
}
//-->
</script>
<body onload="setfocus()">
<html>
<head>
<title>Titlu</title>
<script type="text/javascript">
<!--
function setfocus () {
document.form1.camp2.focus();
document.form1.camp2.select();
}
//-->
</script>
</head>
<body onload="setfocus()">
<form name="form1">
<input type="text" name="camp1" value="un text"> <br>
<input type="text" name="camp2" value="text selectat">
</form>
</body>
</html>
- Daca adaugati codul de mai sus intr-un document HTML, cand il veti
deschide cu un browser va fi selectat automat textul din campul doi.
<html>
<head>
<title>Titlu</title>
<script type="text/javascript">
<!--
function verifica(form) {
if (form.nume.value == "") {
alert("Va rog introduceti numele dvs.");
return false;
}
else if (form.email.value == "" || form.email.value.indexOf('@',
0) == -1 || form.email.value.indexOf('.', 0) == -1) {
alert("Scrieti corect adresa de e-mail !");
return false;
}
return true;
}
// -->
</script>
</head>
<body>
<form name="form1" action="test.php" method="post">
Scrieti numele dvs.:<br>
<input type="text" name="nume"> <br>
Adaugati adresa de e-mail :<br>
<input type="text" name="email"> <br>
<input type="submit" name="submit" value="Trimite"
onClick="return verifica(this.form)">
</form>
</body>
</html>
Trimite
Lectia 23
Obiectul window - 1
<script type="text/javascript">
<!--
function open_window() {
fereastra = open("pagina.html", "numeFereastra",
"width=400,height=300,left=200,top=100,status=no,toolbar=no,
menubar=no");
}
//-->
</script>
<form>
<input type="button" value="Deschide fereastra"
onclick="open_window()">
</form>
</form>
- Lectia 23
Lectia 24
Obiectul window - 2
<html>
<head>
<title>Document generat de JavaScript</title>
<script type="text/javascript">
<!--
function openWindow() {
myWindow= open("", "numeFereastra",
"width=400,height=300,top=100,left=200,
status=yes,toolbar=yes,menubar=yes");
myWindow.document.open();
// se creaza documentul
myWindow.document.write("<html><head><title>Document
creat cu JavaScript");
myWindow.document.write("</title></head><body>");
myWindow.document.write("<center><h1>");
myWindow.document.write("Acest document a fost creat cu
Java Script!");
myWindow.document.write("</h1></center>");
myWindow.document.write("</body></html>");
<html>
<head>
<script type="text/javascript">
<!--
function statusbar(text) {
window.status = text;
}
// -->
</script>
</head>
<body>
<form>
<input type="button" name="scrie" value="Scrie in statusbar"
onClick="statusbar('bara de stare!');">
<input type="button" name="sterge" value="Stegere"
onClick="statusbar('');">
</form>
</body>
</html>
3. Utilizare setTimeout()
<script type="text/javascript">
<!--
function timer() {
setTimeout("alert('S-a folosit metoda setTimeout')", 3000);
}
// -->
</script>
<form>
<input type="button" value="Timer" onClick="timer()" />
</form>
Lectia 25
Ferestre Frame
In prezent noile metode si tendinte de creare a site-urilor folosesc
mai putin frame-uri (cadre). Chiar daca nu le veti folosi, e bine sa
cunoasteti aceste elemente deoarece le puteti gasi in alte documente
si sa stiti despre ce este vorba.
Cadrele (frame-uri) sunt subferestre ale unei ferestre principale, in
care sunt incluse.
1. Crearea cadrelor
<html>
<frameset rows="50%,50%">
<frame src="pagina1.html" name="frame1">
<frame src="pagina2.html" name="frame2">
</frameset>
</html>
2. Obiectul Frame
<html>
<frameset rows="85%,15%">
<frame src="prima.html" name="frame1">
<frame src="meniu.html" name="frame2">
</frameset>
</html>
<html>
<head>
<script language="JavaScript">
<!--
function load(url) {
parent.frame1.location.href= url;
}
// -->
</script>
</head>
<body>
<center>
<a href="javascript:load('test1.htm')">Link1</a> (<i>cu
JavaScript</i>) --
<a href="test2.htm" target="frame1">Link2</a> (<i>cu
target="frame1"</i>) --
<a href="test2.htm" target="_top">Link3</a> (<i>cu
target="_top"</i>)
</center>
</body>
</html>
- Pentru a vedea cum functioneaza acest exemplu, click pe acest
buton ->
- Se observa diferitele moduri de a incarca o pagina noua.
<script type="text/javascript">
<!--
function loadtwo() {
parent.frame1.location.href= "pagina1.html";
parent.frame2.location.href= "pagina.html";
}
//-->
</script>
- Cand va fi apelata fuctia "loadtwo()", va incarca "pagina1.html" in
"frame1" si "pagina2.html" in "frame2".- Lectia 25
Lectia 26
Cookie-uri - 1
1. Fisierele cookie
Daca aceste limite sunt depasite, browserul va sterge cele mai vechi
cookie-uri si nefolosite.
Cand un utilizator trece de la un browser la altul, fisierele cookie
salvate de un browser nu sunt recunoscute de celalalt
Daca mai multi utilizatori folosesc acelasi calculator si acelasi browser
ei pot folosi fisiere cookie care apartin altcuiva.
Cele mai multe browsere stocheaza informatiile cookie in fisiere text
necriptate, de aceea informatiile private precum parole, numere
personale nu trebuie stocate direct intr-un cookie.
Utilizatorul poate configura browserul astfel incat sa interzica
anexarea de cookie, in acest caz aplicatia care foloseste cookie ar
putea sa nu functioneze.
Pentru a afisa intr-o pagina web sirul astfel stocat , puteti folosi
comanda:
document.write(document.cookie)
a. Nume si valoare
• Nume si valoare poate fi orice
cuvinte doriti
Exemplu:
culoare favorita=blue
id=num:1
b. Data de expirare
• Parametrul "expires=data" reprezinta data si timpul
(in formatul Wdy, DD-Mon-YYYY HH:MM:SS GMT) cand
cookie-ul va expira si va fi sters de pe hard-disc.
Perioada de expirare trebuie transformata in
milisecunde.
Daca nu este specificat nici un timp de expirare,
cookie-ul va dispare la inchiderea navigatorului.
• Iata un exemplu in care data de expirare este dupa o
saptamana:
c. Path
• In mod implicit fisierele cookie sunt disponibile si pentru
alte pagini web din acelasi director al paginii la care au
fost create.
Parametrul path permite unui cookie sa fie folosit
si de pagini din alte directoare ale aceluiasi domeniu.
Daca valoarea parametrului "path" este un subsir al
adresei URL a unei pagini, fisierele cookie create cu acel
parametru "path" sunt disponibile pentru respectiva
pagina.
De exemplu, puteti crea un cookie folosind
urmatoarea comanda:
document.cookie = "nume=valoare;
path=/nume_director";
• Aceasta face ca fisierul cookie cu numele "nume" sa fie
disponibil pentru fiecare pagina din directorul
"nume_director" cat si penrtru subdirectoarele acestuia.
• Daca ati avea urmatoarea comanda:
d. Domain
e. Secure
• Daca un cookie este marcat ca secure, prin intermediul
acestui atribut, va fi transmis numai daca tranzactia
HTTP este una sigura (folosindu-se protocolul HTTPS).
In felul acesta un cookie este transmis doar daca
intruneste toate conditiile de validitate (se potrivesc
domeniul, calea de directoare, timpul de expirare si
securitatea canalului de comunicatie).
Daca parametrul "secure" nu este adaugat in
comanda de creare a fisierului cookie, acesta va trimis
intr-o forma necriptata prin retea.
Lectia 27
Cookie-uri - 2
Pentru a intelege mai bine cum puteti crea si folosi fisierele cookie,
studiati exemplul urmator.
Exemplul este ceva mai complex, cuprinde un script cu mai multe
functii care contin multe din elementele invatate in lectiile anterioare
cat si altele mai avansate, pentru lucrul cu siruri.
Scopul acestui exemplu este de a intelege cum functioneaza
fisierele cookie, acesta contine in sectiunea HEAD a unui document
HTML un script JavaScript in care sunt definite 4 functii pentru lucrul
cu fisiere cookie, iar in corpul paginii, BODY, este creat un tabel HTML
cu 2 coloane, in prima este un formular pentru scrierea unor
preferinte care vor fi trimise la script pentru inregistrarea acestora in
cookie, iar a doua coloana contine un buton care activeaza afisarea
preferintelor din cookie si un alt buton care sterge cookie-urile.
// Creaza cookie-urile
document.cookie = "cookie1" + "=" + escape(culoare) + ";
expires=" + expDate.toGMTString() ;
document.cookie = "cookie2" + "=" + escape(fructe) + ";
expires=" + expDate.toGMTString() ;
document.cookie = "cookie3" + "=" + escape(citat) + "; expires="
+ expDate.toGMTString() ;
}
<body>
</td><td>
<form name="preferinte2">
<input type="button" value="Afiseaza Favorite" name="buton"
onclick="getCookie('cookie1', 'cookie2',
'cookie3')" />
<input type="button" value="Sterge cookie" name="Clear"
onclick="stergeCookie('cookie1', 'cookie2',
'cookie3')" />
</form>
<b>Culoare favorita - </b><span id="idculoare"> </span><br />
<b>Fructe preferate - </b><span id="idfructe"> </span><br />
<b>Citat favorit - </b><span id="idcitat"> </span><br />
</td></tr>
</table>
</body>
</html>
Reset
Lucrul cu getElementById
1. attributes[]
<script type="text/javascript">
<!--
function test(val) {
var nume_a = val.attributes[1].name;
alert(nume_a);
}
//-->
</script>
2. childNodes
<script type="text/javascript">
<!--
function test2() {
var val2 =
document.getElementById("ex2").childNodes[1].childNodes[0].nod
eValue;
alert(val2);
}
//-->
</script>
- "document.getElementById("ex2").childNodes[1].childNodes[0]" s-ar
putea traduce:
primul element ( childNodes[0] ) al elementului doi ( childNodes[1] )
din eticheta cu id="ex2", iar "nodeValue" returneaza valoarea.
- Acest exemplu va afisa in pagina urmatoarele doua randuri, dati
click pe link-ul "Test 2" pentru a vedea rezultatul.
Un text oarecare - JavaScript in span - alt text
Test 2
- Va afisa textul din SPAN, eticheta <span> cu tot continutul ei este al
doilea element al DIV-ului (primul fiind sirul "Un text oarecare -"), iar
sirul din cadrul etichetei SPAN este primul element al acesteia.
3. getAttribute() si setAttribute()
<script type="text/javascript">
<!--
function test3(nr) {
if (nr == 1) {
document.getElementById("ex3").setAttribute('title', 'Valoare title
modificata');
}
var val3 = document.getElementById("ex3").getAttribute('title');
alert(val3);
}
//-->
</script>
4. href
<script type="text/javascript">
<!--
function test4() {
document.getElementById("ex4").href="http://www.marplo.net/javasc
ript/";
}
//-->
</script>
- Link-ul de mai jos, desi are scris in codul lui sa deschida pagina de
jocuri, prin evenimentul 'onmouseover' care apeleaza functia "test4()"
la pozitionarea mouse-ului pe link se modificat valoarea atributului
'href' si va deschide alta pagina (aceea setata in functie).
Jocuri
5. innerHTML
<script type="text/javascript">
<!--
function test5(vl) {
if (vl == 0) {
var val5 = document.getElementById("ex5").innerHTML;
alert(val5);
}
else {
document.getElementById("ex5").innerHTML = vl;
}
}
//-->
</script>
6. style
Cu style puteti modifica grafic elementele din pagina, pentru
aceasta se folosesc proprietatile si valorile specifice CSS. Sintaxa
generala este:
document.getElementById("id").style.proprietate="valoare
"
- "proprietate" si "valoare" sunt preluate din CSS, exemplu: color
(proprietate) si blue (valoare).
- diferenta apare la proprietatile CSS compuse, cum e "font-weight",
"margin-top" sau "border-top-width" si altele similare. In JavaScript
dispare liniuta '-' si cuvintele urmatoare se scriu cu primul caracter
majuscula, astfel pentru "font-weight" din CSS in JS este "fontWeight",
iar pentru "border-top-width" in JS este "borderTopWidth".
In exemplul prezentat aici avem un DIV in cadrul caruia este un
link si un tag SPAN care la inceput are "display:none" (nu apare in
pagina). O functie JavaScript care este apelata cu "onmouseover" face
ca atunci cand mouse-ul este pe link sa apara continutul din SPAN
(adauga acestuia "display:inline") si cand mouse-ul este pozitionat
deasupra acestuia, textul devine albastru si ingrosat.
<script type="text/javascript">
<!--
function test6(nr) {
if (nr == 0) {
document.getElementById('ex6').style.display = 'inline';
}
else if (nr == 1) {
document.getElementById('ex6').style.color = '#0101ff';
document.getElementById('ex6').style.fontWeight = 'bold';
}
}
//-->
</script>
<div>
<a href="#" title="Exemplu cu style"
onmouseover="test6(0)">Link ex6</a>
- <span id="ex6" style="display:none;"
onmouseover="test6(1)">Textul din SPAN, ascuns</span>
</div>
7. value
Proprietatea value se foloseste cu elemente din formular, aceasta
preia sau atribue valori in campurile din formular.
"value" se poate folosi si cu proprietati specifice lucrului cu
formulare, in care se utilizeaza numele din atributul "name". (Vedeti
detalii si exemple la Lectia 12 si Lectia 13).
- Pentru a folosi proprietatea "value" impreuna cu
"getElementById('id')", campul sau caseta de formular la care se face
referire trebuie sa aibe atribuita un "id".
Iata un exemplu simplu care afiseaza intr-o fereastra Alert textul
scris intr-o caseta de text.
<script type="text/javascript">
<!--
function test7() {
var val7 = document.getElementById("ex7").value;
alert(val7);
}
//-->
</script>
var elemente =
document.getElementsByTagName('numeTag');
for (var i=0; i<elemente.length; i++) {
elemente[i].proprietate;
}
<script type="text/javascript">
function ad_style(tag) {
// Obtine obiectul cu toate tag-urile precizate
var get_tags = document.getElementsByTagName(tag);
Click
2. getElementById() si getElementsByTagName()
Iata si un exemplu in care sunt doua liste <ul> diferite, iar cand este
apasat un cuvant special definit, va fi aplicat un efect doar tag-urilor
<li> a uneia din ele.
<script type="text/javascript">
function ad_style2(id, tag) {
// Obtine elementul cu id-ul din parametru 'id'
var el_id = document.getElementById(id);
Click
• Text din ul1 ...
• Text din ul1 ...
• Text din ul1 ...
3. getAttribute() si getElementsByTagName()
var elemente =
document.getElementsByTagName(numeTag);
for (var i=0; i<elemente.length; i++) {
if (elemente[i].getAttribute('class')=='numeClasa')
{
// Executati functia sau codul dorit
}
}
<script type="text/javascript">
function ad_style3(tag, clasa) {
// Obtine obiectul cu toate tag-urile precizate
var get_tags = document.getElementsByTagName(tag);
<html>
<head>
<title>Preincarcarea tag-urilor</title>
<style type="text/css">
.cli { cursor:pointer; }
</style>
<script type="text/javascript">
// Se defineste variabila cu functia obiect
var get_li = function () {
// Preia tag-urile LI din pagina
var tags_li = document.getElementsByTagName('li');
var nr_li = tags_li.length; // Obtine nr. de tag-uri LI
<ul>
<li class="cli">Text din primul LI</li>
<li class="cli">Text din al doilea LI</li>
<li class="cli">Text din al treilea LI</li>
</ul>
</body>
</html>
- Lectia 29
Lectia 30
createElement si insertBefore
createElement() si insertBefore() sunt doua functii (metode)
JavaScript care sunt folosite pentru a adauga elemente noi in pagina,
care sunt create dinamic cu JavaScript. De obicei aceste functii sunt
folosite impreuna.
1. createElement("tag")
<script type="text/javascript">
var element = document.createElement("h3");
element.className = "o_clasa";
element.innerHTML = 'Textul din eticheta H3 creata dinamic';
</script>
parinte.insertBefore(element_nou, referinta);
<script type="text/javascript">
<!--
// Functia ce creaza noul element si-l adauga inaintea unui cadru
cu id="rpr"
function add_h3() {
// Creaza noul element H3 si ii adauga o clasa si continut
var element = document.createElement('h3');
element.className = 'o_clasa';
element.innerHTML = 'Textul din eticheta H3 creata dinamic'
<script type="text/javascript">
<!--
// Functia creaza elementul input si-l adauga inaintea butonului
Submit
function add_input() {
// Seteaza noul element input, cu atributul type=text si
name=nume[]
var new_input = document.createElement("input");
new_input.setAttribute("type", "text");
new_input.setAttribute("name", "nume[]");
new_input.style.display = 'block'; // Seteaza
display:block; pt. a afisa casutele unele sub altele
<form action="">
<input type="text" name="nume[]" />
<input type="submit" value="Submit" id="submit" /><br
/><br />
<input type="button" value="Adauga caseta"
onclick="add_input()" />
</form>
Adauga caseta
- Lectia 30
Lectia 31
Creare scripturi avansate - Javascript si PHP
<?php
echo '<script type="text/javascript"> // Cod JS
</script>';
?>
<script type="text/javascript">
var var_js = <?php echo $var_php; ?>;
</script>
<?php
session_start(); // Aceasta functie trebuie scrisa la inceputul
fisierului php
// Cod php ...
echo '<script type="text/javascript">alert("Bine ai venit '.
$_SESSION['nume']. '");</script>';
?>
<div id="tag_ora"></div>
<script type="text/javascript">
<!--
// Script ora server-time, de la http://www.marplo.net
document.getElementById("tag_ora").innerHTML = output;
}
<?php
// Exemplu test, de la http://www.marplo.net
// Creaza o matrice cu denumiri
$ids = array(1=>'php-mysql', 2=>'javascript', 3=>'html');