Documente Academic
Documente Profesional
Documente Cultură
Curs – 10
OBIECTUL "Button"
OBIECTUL "Checkbox"
OBIECTUL "FileUpload"
OBIECTUL "Hidden"
Privit din punct de vedere logic acest obiect ar putea fi considerat ca fiind
similar cu un obiect text cu o proprietate "visible" stabilita la valoarea "false". El este
folosit pentru stocarea valorilor ce trebuie transferate unei prelucrari de server in
general. Obiectul "Hidden" provine din limbajul HTML anterior introducerii pe scara
larga a limbajelor de scriptare ca JavaScript - perioada in care nu existau variabile,
tablouri sau obiecte care sa poata stoca unele valori in vederea efectuarii unor serii de
operatii asupra lor.
În practica reala din ziua de azi acest obiect este destul de rar folosit dar -
pentru a fi in concordanta cu restul lucrarii - vom prezenta şi proprietatile acestui
obiect :
PROPRIETATE SEMNIFICATIE
form specifica formularul care contine obiectul
name contine numele obiectului "Hidden"
type contine valoarea atributului "type" al obiectului
"Hidden"
value contine valoarea atributului "value" al obiectului
"Hidden"
Tabelul 2.5 - 20
OBIECTUL "Password"
Si acest obiect este inrudit cu obiectul de tip text. Singura diferenta intre cele
doua obiecte este ca toate caracterele introduse in acest obiect sunt afisate ca stelute,
pentru a le ascunde valoarea.
Tabelul de mai jos prezinta metodele şi proprietatile obiectului "Password" :
OBIECTUL "Radio"
OBIECTUL "Reset"
OBIECTUL "Submit"
Atunci cand este apasat un buton de acest tip se declanseaza un eveniment care
trimite toate valorile dintr-un formular spre programul specificat in atributul "action"
al tag-ului <form>.
In continuare putem vedea metodele şi proprietatile acestui obiect :
OBIECTUL SELECT
Intre controalele cel mai des utilizate in paginile web se afla lista derulanta şi
caseta cu lista de selectie. Diferenta principala dintre ele este acea ca utilizatorul poate
selecta o singura valoare din lista derulanta dar poate selecta mai multe valori dintr-o
lista de selectare.
Obiectul "Select" incapsuleaza comportamentul ambelor elemente. Cu alte
cuvinte el poate apare ca lista derulanta ( cu comportament prestabilit ) sau ca lista de
selectare ( daca proprietatea "multiple" este stabilita la "true" ).
In continuare avem toate metodele şi proprietatile acestui obiect :
OBIECTUL "Text"
OBIECTUL "Textarea"
OBIECTUL "Option"
Acest obiect este folosit pentru referirea la diverse elemente <option> care
apar intre tagurile <select> şi </select>.
Proprietatile obiectului le putem analiza in continuare :
PROPRIETATE SEMNIFICATIE
defaultSelected face referire la optiunea care este selectata in
mod prestabilit in caseta de selectare
index face referire la lcatia indexata a unui element
in tabloul "Select.options"
selected face referire la valoarea selectata a casetei de
selectare
text face referire la textul pentru optiune
value face referire la valoarea care este intoarsa cand
este selectata optiunea
Tabelul 2.5 - 28
Tot capitolul anterior s-a axat pana acum pe prezentarea obiectele pe partea de
client a JavaScript- acestea reprezentand de fapt nucleul limbajului; cu toate acestea, o
importanta parte a dezvoltarii de programe mai complexe in JS o constituie lucrul cu
asa numitele obiecte esenţiale ale limbajului.
Acestea au avantajul de a fi compatibile in diverse implementari - Microsoft,
Netscape, Sun sau Opera - şi sunt considerate in afara ierarhiei de obiecte detaliate in
capitolul anterior, ele referindu-se la alt tip de elemente decat cele care se refereau
direct la partea vizibila direct, la rezultatul programarii.
In cele ce urmeaza vom detalia obiectele "String", "RegExp", "Array", "Date",
"Math", "Boolean", "Number" şi "Function".
OBIECTUL "String"
<script type="text/javascript">
var pos=0;
var num=-1;
var i=-1;
var fraza="Fraza folosita pentru a contoriza aparitia literei a in cadrul unui
sir";
while (pos!=-1) {
pos=fraza.indexOf("a",i+1);
num++;
i=pos;
}
document.write(fraza);
document.write("<hr size=3>");
document.write("Exista : "+num+" a-uri in fraza");
document.close();
</script>
In imaginea de mai jos puteti vedea şi rezultatul acestui script, intr-o fereastra
de browser :
Figura 2.5 - 5
Pentru a ne putea da seama de forta reala a acestor metode ale şirurilor trebuie
sa le combinam pentru a putea rezolva diferite probleme.
Pentru a exemplifica mai bine acest fapt sa detaliem o funcţie de înlocuire a
unui şir din interiorul unui alt sir. Pentru a folosi şi mai multe elemente legate de
tratarea JS a şirurilor sa profitam şi de proprietatea "prototype" a unui obiect "String"
pentru a adauga metoda "replace()" tipului de obiect "String" :
<head>
<script type="text/javascript">
String.prototype.replace=stringReplace;
function stringReplace(findText,replaceText) {
var originalString=new String(this);
var pos=0;
var len=findText.length;
pos=originalString.indexOf(findText);
while (pos!=-1) {
preString=originalString.substring(0,pos);
postString=originalString.substring(pos+len,originalString.length);
originalString=preString+replaceText+postString;
pos=originalString.indexOf(findText);
}
return originalString;
}
</script>
</head>
<body>
<script type="text/javascript">
var origString=new String("Alexandru");
var findString=new String("xan");
var replaceString=new String("BBB");
var resultString=origString.replace(findString,replaceString);
document.write("Textul original era :"+origString+"<br>");
document.write("S-a cautat textul : "+findString+"<br>");
document.write("S-a înlocuit cu : "+replaceString+"<hr size=3>");
document.write("Rezultatul este : "+resultString);
</script>
</body>
Pentru a prezenta cat mai clar optiunile de formatare a unui text in JavaScript
sa studiem şi scriptul urmator; acesta ne va permite sa selectam tipul de formatare pe
care il dorim pentru textul nostru pe care il vom introduce şi va afisa rezultatul
formatat ca urmare a dorintei utilizatorului :
<head>
<script type="text/javascript" language="JavaScript1.1">
function fereastraNoua() {
var txt=document.form1.stringField.value;
var clr="";
var sze="";
if (document.form1.bigBox.checked) txt=txt.big();
if (document.form1.blinkBox.checked) txt=txt.blink();
if (document.form1.boldBox.checked) txt=txt.bold();
if (document.form1.fixedBox.checked) txt=txt.fixed();
if (document.form1.italicsBox.checked) txt=txt.italics();
if (document.form1.smallBox.checked) txt=txt.small();
if (document.form1.strikeBox.checked) txt=txt.strike();
if (document.form1.subBox.checked) txt=txt.sub();
if (document.form1.supBox.checked) txt=txt.sup();
clr=document.form1.colorList.options[document.form1.colorList.options.selec
tedIndex].text;
txt=txt.fontcolor(clr);
sze=document.form1.sizeList.options[document.form1.sizeList.options.selecte
dIndex].text;
txt=txt.fontsize(sze);
fereastra=window.open("","","width=600,height=300");
fereastra.document.write(txt);
fereastra.document.close();
}
</script>
</head>
<body>
<hr>
<form method="post" name="form1">
<p> şir :
<input type=text size=40 maxlength=256 name="stringField"></p>
<p> Stilul de formatare :
<input type=checkbox name="bigBox" value="ON">Big
<input type=checkbox name="blinkBox" value="ON">Blink
<input type=checkbox name="boldBox" value="ON">Bold
<input type=checkbox name="fixedBox" value="ON">Fixed
<input type=checkbox name="italicsBox" value="ON">Italice
<input type=checkbox name="smallBox" value="ON">Small
<input type=checkbox name="strikeBox" value="ON">Strike
<input type=checkbox name="subBox" value="ON">Subscript
<input type=checkbox name="supBox" value="ON">Superscript
</p>
<p> Font :
Color :
<select name="colorList" size=1>
<option selected>black</option>
<option>yellow</option>
<option>pink</option>
<option>red</option>
<option>blue</option>
</select>
Size :
<select name="sizeList" size=1>
<option selected>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
</select>
</p>
<input type="button" name="Show" value="Prezinta rezultat"
onClick="fereastraNoua()">
</form>
</body>
CARACTERE SPECIALE
Desi problematica acestor caractere a mai fost abordata şi anterior vom mai
reveni cu cateva detalii succinte pentru a arata şi folosirea in practica, direct in cod
sursa a acestora.
Ca şi in alte limbaje de programare şi JavaScript ne permite sa lucram cu
anumite caractere care sunt folosite in acelasi timp şi de limbaj pentru a desemna
anumite operatii. Pentru a utiliza aceste caractere trebuie sa folosim un caracter
backslash ( \ ) urmat de caracterul respectiv sau de codul sau.
Aceste simboluri ce trebuie folosite cu backslash pentru a fi incluse in siruri
sunt :
SIMBOL SEMNIFICATIE
\t tab
\n linie noua
\r retur de car
\f salt de pagina
\\ backslash
\b deplasare cu un spatiu la stanga
\" ghilimele
\' apostrof
Tabelul 2.5 - 30
În practicăse foloseste o metoda considerata utila de multi programatori.
Simbolurile de mai sus sunt atribuite unor variabile :
<script type="text/javascript">
var TAB="\t";
var CR="\r";
var LF="\n";
var CRLF="\r\n";
var FF="\f";
var GHILIMELE='\"';
var APOSTROF="\'";
var BACKSLASH="\\";
var BACKSPACE="\b";
</script>
Text%20de%20proba%20pentru%tilda%20%7E
Pentru conversia din numere in siruri avem mai multe metode; in versiunile de
JS incepand cu 1.3 avem metoda dedicata "toString()" in timp ce in versiunile
anterioare ne puteam baza pe felul in care proceseaza JS operatorul "+".
In cazul in care JS intalneste un şir in timp ce aduna elementele unei expresii,
din acel moment intreaga expresie este tratata ca un sir.
OBIECTUL "RegExp"
In cazul in care definim un elemente de tablou cu indexul "i" mai mare decat
dimensiunea actuala a tabloului, automat marimea tabloului creste la "i+1". Un
element nedefinit va returna o valoare nula in cazul in care este accesat.
OBIECTUL "Date"
Lista parametrilor care pot fi transmisi la crearea acestor instante ale obiectului
"Date" :
OBIECTUL "Math"
OBIECTUL "Boolean"
OBIECTUL "Number"
In acest caz avem de-a face cu un obiect de tip - sa-i zicem "generic"; el face
cu valorile numerice ceea ce face "String" pentru valorile de tip sir. Obiectul este util
cand trebuie sa accesam anumite valori constante, plus şi minus infinit sau valoarea
"NaN".
Mai jos avem lista de proprietati şi metode ale obiectului :
OBIECTUL "Function"
OBIECTUL "Global"
In finalul capitolului legat de obiecte trebuie sa introducem şi acest concept.
Pentru cei care au lucrat deja in limbajul JavaScript la un nivel macar mediu acest
obiect poate apare surprinzator - ei nu l-au intalnit! Totusi va asigur ca exista.
Povestea acestui obiect incepe in perioada cand organizatia ECMA studia inca
standardul JavaScript. In acea perioada s-a constata ca firma Microsoft grupase unele
proprietati şi metode de cel mai inalt nivel in limbajul JavaScript intr-un nou obiect :
"Global". Studiile detaliate au aratat ca şi firma Netscape cunostea şi utiliza obiectul
iar rezultatul a fost ca organizatia ECMA l-a adoptat oficial, definindu-i şi lista de
metode şi proprietati - pe care de altfel le-am intalnit şi pana acum fara a detalia exact
modul lor de existenta şi utilizare :