Ferestre Frame

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

Fereastra navigatorului poate fi impartita în mai multe frame-uri (cadre). Un frame este o parte din suprafata ferestrei browserului. 
Fiecare frame prezinta în interior un document propriu (in general un document HTML). De exemplu puteti creea doua frame-uri intr-o fereastra, in primul frame puteti incarca o pagina de la o adresa (ex. google.com) iar in al doilea frame o alta pagina, de la alta adresa (ex. yahoo.com). 
Crearea de frame-uri apartine limbajului HTML, dar am sa descriu cateva lucruri de baza. 
Pentru crearea de frame-uri se pot folosi urmatoarele etichete HTML:
  • <frameset> , <frame> si 
Un exemplu de cod HTML care creaza o pagina cu doua frame-uri este urmatorul:



  
  



- Proprietatea "row" din eticheta  aseaza cele doua frame-uri in linie, unul deasupra celuilalt. 
Primul frame, de deasupra, incarca si afiseaza "pagina1.html" iar al doilea frame incarca si afiseaza "pagina2.html". 
Daca vreti sa asezati cele doua frame-uri in coloana, unul langa altul, inlocuiti cuvantul "row" cu "cols". 
Expresia "50%,50%" reprezinta dimensiunea fiecarui cadru, exprimata in procente in raport cu fereastra principala. 
Fiecare frame trebuie sa aibe un nume unic, exprimat prin atributul "name" din eticheta , cu ajutorul acestui nume se poate accesa in JavaScript cadrul dorit. 
Pentru mai multe detalii desprea crearea de cadre, vedeti Cadre (lectia 10) din cursul HTML.
Pentru crearea unui cadru cu  puteti folosi urmatoarea sintaxa:
  •  
- Unde "url_pagina" e adresa paginii care va fi incarcata in iframe, "width" si "height" reprezinta lungimea respectiv inaltimea cadrului (exprimata in procente sau pixeli), "scrolling" reprezinta permisiunea de derulare a paginii din cadru (yes sau no), "frameborder" specifica daca va fi sau nu afisata o margine (bordura) pentru cadru (1=da, 0=nu), iar "nume_frame" este numele cadrului care va fi folosit de JavaScript.

2. Obiectul Frame

Acest obiect face referire la un cadru (un frame) dintr-o structura de cadre incluse intr-o fereastra. 
Intr-o pagina cu mai multe cadre, obiectul "Window" reprezinta de fapt pagina care contine tagul <frameset>, iar celelalte pagini sunt considerate cadre in acest context. 

Obiectul frame are urmatoarele proprietati:
  • document - reprezinta documentul curent incarcat in interiorul unui cadru 
    
    frames - tablou ce contine referiri la cadrele copil 
    
    length - lungimea tabloului de cadre (nnumarul de elemende) 
    
    name - atributul "name" al etichetei <frame> 
    
    parent - fereastra principala sau cadrul principal din care sunt create cadrele copil 
    
    self - reprezinta referire la cadrul curent 
    
    top - fereastra de browser care executa scriptul 
    
    window - face referire la fereastra curenta sau la cadrul curent
Obiectul frame are urmatoarele metode:
  • blur() - dezactiveaza cadrul 
    
    clearInterval() - anuleaza o executie repetata 
    
    clearTimeout() - anuleaza orice executie intarziata 
    
    focus() - activeaza un cadru 
    
    print() - apeleaza caseta de dialog "Print" 
    
    setInterval() - stabileste planificarea functiei pentru executare repetata 
    
    setTimeout() - stabileste planificarea functiei pentru executare intarziata
3. Frame-uri si JavaScript

Ierarhia elementelor paginii HTML create in primul exemplu (cele 2 cadre "frame1" si "frame2" asezate in linie) este urmatoarea:
  • fereastra browser (parinte), care este in varful ierarhiei, aceasta contine doua cadre copii - "frame1" si "frame2"
Cu ajutorul numelor date cadrelor putem schimba informatii intre cele doua frame-uri impreuna cu fereastra principala, de exemplu putem face un link intr-un frame care sa deschida o pagina in celalalt frame. 
In continuare vom studia trei cazuri de relatii si accesari intre ferestrele copil si fereastra parinte.

1. Fereastra parinte acceseaza o fereastra copil
  • Daca aveti un script in fereastra parinte, ca sa se acceseze prin el frame-urile trebuie doar folosit numele frame-ului.
  • De exemplu:
    • frame1.document.write("Mesaj de la fereastra parinte");
2. Fereastra copil acceseaza fereastra parinte
  • Acest procedeu e util cand vreti sa eliminati cadrele din fereastra principala. Eliminarea structuri de cadre se face prin incarcarea unei pagini noi in locul paginii principale care a creat frame-ul (aici fereastra parinte).
  • Se poate accesa fereastra parinte din interiorul unei ferestre copil cu ajutorul expresiei "parent". Pentru a incarca un document nou in fereastra parinte se foloseste "location.href", caruia ii dam un nou URL, ca in exemplul urmator:
    • parent.location.href = "http://adresa_url"; (adresa_url este adresa noi pagini care va fi incarcata)
3. O fereastra copil acceseaza o alta fereastra copil
  • Nu exista legatura directa intre cele doua cadre, primul frame nu cunoaste existenta celuilalt.
  • Pentru fereastra parinte, al doilea cadru (frame) este numit "frame2" iar fereastra principala, vazuta din primul frame este numita "parent". Astfel, pentru a avea acces din primul frame la obiectul "document" al celui de-al doilea frame trebuie sa scriem urmatoarele:
    • parent.frame2.document.write("Apel de la cadrul frame1");
4. Navigarea prin cadre

Prin "navigarea prin cadre" se intelege deschiderea paginilor intr-un frame sau in fereastra principala printr-un link din alt frame. Acest lucru se poate face prin mai multe metode. 
Pentru a intelegere mai bine, vom lua un exemplu concret. 
Folosim o pagina cu doua cadre, in al doilea cadru vom avea legaturi catre mai multe pagini, dar care se vor incarca in primul cadru.

<html>
<frameset rows="85%,15%">
  <frame src="prima.html" name="frame1">
  <frame src="meniu.html" name="frame2">
</frameset>
</html>

Pagina "prima.html" reprezinta pagina initiala care va fi incarcata in primul frame, cu numele "frame1" (poate fi orice document HTML). 
Pentru pagina care va fi incarcata in al doilea frame (meniu.html) vom folosi codul de mai jos pentru crearea ei.

<html>
<head>


  function load(url) {
  parent.frame1.location.href= url;
}
// -->

</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.
  • - Primul link (Link1) foloseste functia "load()" dintr-un script 
    
    - Al doilea link (Link2) foloseste atributul "target", metoda standard HTML pentru cadre 
    
    - Al treilea link (Link3) foloseste tot atributul "target", de data aceasta prin valoarea "_top" va incarca pagina noua direct in fereastra principala, eliminand astfel cadrele.
In functie de proiectul dv. puteti decide care varianta e mai potrivita. 
Folosind atributul HTML "target" este metoda cea mai simpla. 
Solutia JavaScript este recomandata daca doriti sa faceti mai multe lucruri ca o consecinta a click-ului pe un link, de exemplu cand doriti ca printr-un click sa deschideti doua ferestre, in doua cadre diferite. Pentru aceasta puteti utiliza urmatorul script:



function loadtwo() { 
    parent.frame1.location.href= "pagina1.html"; 
    parent.frame2.location.href= "pagina.html"; 
} 
//--> 


- Cand va fi apelata fuctia "loadtwo()", va incarca "pagina1.html" in "frame1" si "pagina2.html" in "frame2".

Despre CHIFOR CORNEL IULIAN

SALUT!MA NUMESC CHIFOR CORNEL IULIAN,SUNT NASCUT PE DATA DE 06.11.2001 SI IMI PLACE ENORM DOMENIILE IT SI MECANICA AUTO!DA STIU CA ACESTE DOMENII NU SE ASEAMANA DELOC DAR EU FAC DOAR CEEA CE IMI PLACE!TOCMAI DE ACEEA AM HOTARAT SA IMI FAC UN WEBSITE!DAR CA TOTI FONDATORII DE WEBSITEURI AS AVEA NEVOIE SI DE UN AJUTOR CARE SA MAI POSTEZE SI EL MACAR 2 ARTICOLE PE WEBSITE PENTRU A ECHILIBRA POSTARILE WEBSITEULUI SI A MARII NUMARUL DE VIZITATORI!ASA CA DACA TU CREZI CA ESTI CEL POTRIVIT SI AI DORII SA ITI FACI MACAR 1 ORA LIBERA PE ZI LA CALCULATOR EU TI-AS FI RECUNOSCATOR SI AM SA ITI FAC SI TIE UN WEBSITE CUM DORESTI TU!
Acest articol a fost publicat în HOME. Pune un semn de carte cu legătura permanentă.

Lasă un comentariu