Curs Javascript

In acest tutorial este prezentat modul de preluarea si modificare a continutului unui IFRAME, preluarea valorii unei variabile din el si apelarea unei functii JS aflata in el, toate printr-un buton si script JavaScript aflate intr-un al doilea IFrame.
Este important de mentionat ca paginile care sunt incluse in cele doua IFrame-uri trebuie sa se afle pe acelasi server cu pagina principala, altfel nu va fubnctiona din motive de securitate.

Trecand direct la subiect, pentru a prelua si modifica continutul unui IFrame printtr-un alt IFrame, se foloseste baza comuna pe care acestea o au, si anume Pagina Principala, sau denumita si "Parinte", utilizand proprietatea "parent" impreuna cu numele IFrame-ului ce va fi cercetat (nume ce e specificat in atributul "name").
Iata un exemplu din care se poate intelege modul de aplicare al acestei proprietati (explicatiile necesare le gasiti in cod).

1. Cream intai un fisier "ifr1.htm" ce va contine codul HTML pt. pagina din primul IFrame.

Cod ifr1.htm

<html>
<head>
<script type="text/javascript"><!--
// Stocheaza o valoare in variabila "var_ifr1", care va fi preluat de alta variabila din iframe-ul 2
var var_ifr1 = '<b>Val. variabila din iframe 1</b>';

// Functia modifica continutul DIV-ului "div_ifr1" cu ce primeste la parametru
// Va fi apelata din iframeul 2
function f_ifr1(txt) {
    document.getElementById('div_ifr1').innerHTML = txt;
}
//--></script>
</head>
<body>
IFRAME 1
Continut in BODY
<div id="div_ifr1">Continut div din iframe 1</div>
</body>
</html>

2. Acum se creaza pagina "ifr2.htm", pt. al doilea IFrame, care printr-o functie apelata dintr-un buton va prelua continutul si valoarea unei variabile din primul IFrame.

Cod ifr2.htm

<html>
<head></head>
<body>
IFRAME 2<br>

<script type="text/javascript"><!--
function f_ifr2(txt) {
    // Preia tot continutul BODY din iframe-ul "ifr1"
    var c_ifr1 = parent.ifr1.document.body.innerHTML;

    alert(c_ifr1);                 // Il afiseaza intr-o fereastra alert

    // Preia valoarea variabilei "var_ifr1", aflata in scriptul din iframe-ul "ifr1"
    var from_ifr1 = parent.ifr1.var_ifr1;

    // Afiseaza in DIV-ul "d_ifr2", din propriul cadru, valoarea preluata
    document.getElementById('d_ifr2').innerHTML = from_ifr1;

    // Apeleaza functia "f_ifr1", din primul iframe, transferandu-i si un parametru
    parent.ifr1.f_ifr1(txt);
}
//--></script>
<div id="d_ifr2"> </div>
<button onclick="f_ifr2('<b>Text modificat din iframe 2</b>')">Action iframe</button>
</body>
</html>

3. Ultimul pas este crearea paginii parinte, "main.html", ce va contine si afisa cele doua IFrame-uri.

Cod main.html

<html>
<head><title>Pagina principala</title></head>
<body>
<h3>Pagina principala</h3>
<h4>Primul iframe</h4>
<iframe src="ifr1.htm" id="ifr1" name="ifr1"></iframe>

<br><h4>Al doilea iframe</h4>
<iframe src="ifr2.htm" id="ifr2" name="ifr2"></iframe>
</body>
</html>

- Acest exemplu va afisa urmatorul rezultat:

Pagina Principala

Primul iframe

IFRAME 1 Continut in BODY
Continut div din iframe 1

Al doilea iframe

IFRAME 2

- Cand dati click pe butonul "Action iframe", din cadrul IFrame-ului 2, este apelata functia "f_ifr2()". Aceasta preia si afiseaza intr-o fereastra Alert tot continutul din IFrame-ul 1, apoi preia si valoarea variabilei din acesta, "var_ifr1", pe care o va afisa in propriu cadru, apoi apeleaza si functia "f_ifr1()", situata tot in primul IFrame, careia ii transmite prin parametru un text ce va inlocui continutul div-ului "div_ifr1".
- Toate aceste aactiuni vor fi efectuate din al doilea IFrame asupra codului din primul IFrame, prin intermediul proprietatii "parent".

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Care tip de <input> creaza un element cu data tip calendar?
type="text" type="date" type="button"
<input type="date" name="set_date" value="2012-10-15" />
Ce proprietate CSS adauga efect de umbre la text?
font-style color text-shadow
h2 {
  text-shadow: 2px 3px 3px #a0a1fe;
}
Clic pe functia care adauga elemente noi la sfarsitul unui array.
pop() shift() push()
var pags = ["lectii", "cursuri"];
pags.push("download", "tutoriale");
alert(pags[2]);            // download
Ce functie aranjeaza un array in ordine crescatoare, dupa chei, mentinand corelatia dintre chei si valori?
asort() ksort() sort()
$lang =[10=>"PHP", 20=>"JavaScript", "site"=>"coursesweb.net");
ksort($lang);
var_export($lang);     // array ("site"=>"coursesweb.net", 10=>"PHP", 20=>"JavaScript")
La adjectivul "big" (mare), care este forma de Comparativ (mai mare)?
biggest biger bigger
He is bigger than his sister.
- El este mai mare decat sora lui.
Care este Comparativul adjectivului "grande" (mare)?
menos grande más grande el más grande
Él es más grande que su hermana.
- El este mai mare decat sora lui.
Preluare si modificare continut IFrame din alt IFrame

Last accessed pages

  1. AJAX cu JSON (873)
  2. JavaScript HTML DOM - Obiectul document (2233)
  3. Curs si Tutoriale Ajax (106368)
  4. Trecut perfect (4641)
  5. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (279814)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (148)
  2. Gramatica limbii spaniole. Indrumator si prezentare generala (71)
  3. Gramatica limbii engleze - Prezentare Generala (39)
  4. Cursuri limba engleza gratuite si lectii online (34)
  5. Creare si editare pagini HTML (32)